思路:取余获取正整数每个位置上的数字,分别计算阶乘,再求和
※注意阶乘和的范围※
//输入正整数N,计算r1!+r2!+r3!+……+rn!并输出,其中N=r1r2r3…rn
//取余获取每一位的数字
#include<stdio.h>
long long jc(int x){
long long data;
int i;
data=1;i=1;
while(i<=x){
data=data*i;//累乘
i++;
}
return data;
}
int main(){
long long sum;
int num,k;
sum=0;
scanf("%d",&num);
while(num<=0){
printf("输入正整数:");
scanf("%d",&num);
}
while(num!=0){
k=num%10;
sum=sum+jc(k);
//printf("阶乘为:%lld",jc(k));
num=num/10;
}
printf("计算结果为:%lld",sum);
return 0;
}