求解一个简单的C语言循环程序1!+2!+3!一直到+20!

来源:百度知道 编辑:UC知道 时间:2024/06/24 18:18:02
最好是简单的程序

这个题要注意数据范围,用int 会溢出
#include <stdio.h>
void main()
{
int i,j;
double s,sum=0;
for(i=1;i<=20;i++)
{
s=1;
for(j=1;j<=i;j++)
s=s*j;
sum=sum+s;
}
printf("%.0f\n",sum);
}

/*1!+2!+3!+..+20!*/
#include <stdio.h>
int main()
{
int i,j;
int factorial=1;
int sum=0;
for(j=1;j<=20;j++)
{
for(i=1;i<=j;i++)
factorial*=i;
sum+=factorial;
printf("%d!+",j);
factorial=1;
}
printf("\b=%d",sum);
return 0;
}

奇怪了,明明一个循环就可以解决,为什么楼上都搞两个循环呢??

结果为: 2561327494111820290

#include <stdio.h>
void main()
{
int iNo=20; /* 阶乘数 */
int i,j;
double sum=0,factorial=1;
for(i=1;i<=iNo;i++)
{
factorial *=i;
sum+=factorial;
}
printf("%.0f\n"