思路:采用两层循环。外层循环计算所有阶乘相加的和(即最终答案),内层循环计算每一个阶乘的具体值。代码见下:

#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:采用递归+函数的方法超时,没法通过。