求Sn=1!+2!+3!+4!+5!+…+n!之值,其中n是一个数字(n不超过20)
//#include
//
//
//int main() {
// int i, n, t, sum;
// t = 1;
// sum = 0;
// scanf("%d", &n);
// for (i = 1; i
// t = t * i;
// sum = sum + t;
// }
// printf("%d", sum);
// return 0;
//}
#include
int main() {
int n;
long long int sum = 0, t = 1;
scanf("%d", &n);
for (int i = 1; i
t *= i;
sum += t;
}
printf("%lld", sum);
}
我第一次的时候写错了。原因是我不知道要用long long int定义sum
注意事项:本题输入变量的数据范围是20以内,大家可以试验实验输入19,会发现输出了一个负数,说明结果的大小超出
了int类的储存范围,故需要用long long类的变量来储存部分结果和总结果。