我是一名大一的新生,最近学C程遇到了几个问题,麻烦大家帮帮忙!(是不是女生不适合学C语言啊)
题目是求 20∑ n! 既求(1!+2!+...+20!)
n=1
答案给出的C程的代码是
#include<stdio.h>
main()
{
float n,s=0,t=1;
for(n=1;n<=20;n++)
{
t=t*n;
s=s+t;
}
printf("1!+2!+3!+...+20!=%e\n",s);
}
但是其中的这个部分看不懂。。。唉,刚刚学了循环语句和for语句,对于下面这两句老是不能理解,希望高手们能详细解释下应该怎么理解。。
for(n=1;n<=20;n++)
{
t=t*n;
s=s+t;
PS:我个人的理解是:因为s=0,t=1所以,当n=1开始时,t1=1*1=1,s1=0+1=1....然后一直加到s20=xxx,但是就是不理解为什么这两个式子为什么就能表示
阶乘的和。。。应该怎么理解。
我们老师写的这个题的C程代码是:
#include<stdio.h>
main()
{
int i,j;
long int s1,s2;
s1=0;
for(i=1;i<=20;i++)
{s2=1;
for(j=1;j<=i;j++)
{
s2*=j;}
s1+=s2;}
printf("%ld",s1);
}
但是这个部分也是不理解:
for(i=1;i<=20;i++)
{s2=1;
for(j=1;j<=i;j++)
{
s2*=j;}
s1+=s2;}
唉,想了两天了,还是不明白,是不是女生不适合学C程啊?郁闷死了