求s=1!+2!+3!+……+n!的和从键盘输入n得值(n小于50),并输出运行结果
这个问题用两层的for循环就可以搞定的嘛,例如下面这个代码:
#include <stdio.h>
int main() {
int n, i, j;
long long s = 0, f = 1;
printf("请输入n的值:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
f = 1;
for (j = 1; j <= i; j++) {
f *= j;
}
s += f;
}
printf("%d的阶乘之和为%lld\n", n, s);
return 0;
}
#include <stdio.h>
int main() {
int n;
long long sum = 0;
long long factorial;
scanf("%d", &n);
if (n > 50) {
return 0;
}
factorial = 1;
for (int i = 1; i <= n; i++) {
factorial = factorial * i;
sum += f;
}
printf("sum=%ld", sum);
return 0;
}
50!用long long int 会溢出。