Description
求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n(1≤n≤20)是一个数字。
Input
n
Output
和
Sample Input
5
Sample Output
153
HINT
请用 long long类型的变量保存阶乘结果,否则会造成类型溢出问题!
#include<stdio.h>
//注意函数类型也要设置成long long(函数返回的类型是long long)
long long Fact(int x){
long long num = 1;
while(x){
num = num * x;
x--;
}
return num;
}
int main(){
int n;
long long sum = 0;
scanf("%d",&n);
for(int i = 1; i<=n; i++){
sum = sum + Fact(i);
}
printf("%lld\n",sum);
return 0;
}
该程序使用C语言编写,旨在计算从1到n的阶乘之和,其中n的最大值为20。为了避免数值溢出,使用了long long类型来存储阶乘结果。程序通过循环遍历并累加每个数的阶乘,最后输出总和。示例输入5,输出为153。注意,计算阶乘时要确保数据类型足够大以防止溢出。
564

被折叠的 条评论
为什么被折叠?



