实验2-4-4-for 求阶乘序列前N项和
最终正确答案
#include<stdio.h>
int main()
{
int n=0, total=1, sum = 0 ;
scanf("%d", &n);
for (int i = 1;i <= n;i++)
{
total = 1;
for (int j = 1;j <= i;j++)
{
total = total * j;
}
sum = sum + total;
}
printf("%d", sum);
}
离成功只差一步的答案
#include<stdio.h>
int main()
{
int n=0, total=1, sum = 0 ;
scanf("%d", &n);
for (int i = 1;i <= n;i++)
{
for (int j = 1;j <= i;j++)
{
total = total * j;
}
sum = sum + total;
}
printf("%d", sum);
}
最开始的错误答案
#include <stdio.h>
int main()
{
int n = 0;
int sum = 0, total = 1;
scanf("%d", &n);
for (int i = 1;i <= n;i++) {
for (int j = 1;j <= i;j++)
{
total *= j;
}
sum += total;
}
printf("sum = %d\n", sum);
return 0;
}
求助的答案
#include<stdio.h>
int fact(int n);
int main() {
int n, i;
int sum = 0;
scanf("%d", &n);
for (i = 1;i <= n;i++) {
sum += fact(i);
}
printf("%d", sum);
}
int fact(int n) {
int j;
int total = 1;
for (j = 1;j <= n;j++) {
total *= j;
}
return total;
}
小结
-
一开始只能想到普通的做法,但是没有想到嵌套的for语句
-
然后用到了嵌套后卡住
-
最后的一个解法暂时不能理解
-
问问题的时候了解到了几个新名词: 大数算法,堆栈,递归,迭代,数据溢出(应该和整型有关)
-
能用简单的解决为什么要这么麻烦。
-
应该是用来解决更复杂的问题
-
一个问题:
为什么把total放在里面就可以了?