编写一个程序求 1!+2!+3!+…+n!,其中,n 为正整数。

1、有一下两个求 1+2+…+n 的算法:
long Sum(long n) //算法 1
{
Long s = 0;
for (long i = 1; i<= n; i ++)
s += i;
return s;
}
long Sum2(long n) //算法 2
{
long s = n * (n + 1) / 2;
return s;
}
2
《信息系统软件设计基础》上机指导书
现在需要计算 1+(1+2)+(1+2+3)+…+(1+2+3+…+n)。编写一个程序分别调用
上述两个算法求解,给出 n=100000 时两个算法的执行时间。
2、编写一个程序求 1!+2!+3!+…+n!,其中,n 为正整数。请给出直接累计 i!(1≤i≤
n)的算法和改进算法。并采用相关数据测试(在上机实验时 n 比较大时结果会溢出,不必
考虑结果溢出情况)。分析两个算法的时间复杂度。

这个很简单啊,写一个阶乘的子函数,然后在循环中调用就好了。

1+(1+2)+(1+2+3)+…+(1+2+3+…+n) 这个式子计算有简单方法
式子可以变形为:
1n + 2(n-1) + 3*(n-2) + ... + (n-1)2 + n1
这样单循环就能计算结果。

1!+2!+3!+…+n!
也可以变形为:
1 + 1x2 + 1x2x3 + 1x2x3x4+ = 1x(1+2x(1+3x(1+4x....