函数-数字各位阶乘之和
链接:https://ac.nowcoder.com/acm/contest/93960/G链接:https://ac.nowcoder.com/acm/contest/93960/G
来源:牛客网
乎优塔病好了,他又开始研究定义一个新函数,该函数的声明形式为: long long fun(int n); ,其作用为:分解出n的每一位,并计算每一位的阶乘,然后将计算后的结果相加后返回,请编程实现(要求必须使用函数实现,否则不计入成绩)。
输入描述:
一个整数n(1≤n≤1000000)。
输出描述:
一个整数,计算后的结果。
#include<iostream>
#include<string>
using namespace std;
long long factorial(int n)
{
long long result=1;
for(int i=1; i<=n;i++){
result *=i;
}
return result;
}
long long fun(int n) {
string s=to_string(n);
long long sum = 0;
for (char ch:s) {
int digit=ch-'0';
sum+=factorial(digit);
}
return sum;
}
int main() {
int n;
cin>>n;
long long result=fun(n);
cout<<result<<endl;
return 0;
}