思路:采用两层循环。外层循环计算所有阶乘相加的和(即最终答案),内层循环计算每一个阶乘的具体值。代码见下:
#include<stdio.h>
int main() {
int n, i, j, SUM = 0, sum;
scanf("%d", &n);
for (i = 1; i <= n; i++) {
sum = 1;
for (j = 2; j <= i; j++) {
sum *= j;
}
SUM += sum;
}
printf("%d\n", SUM);
return 0;
}
PS:采用递归+函数的方法超时,没法通过。