1、首先打开C语言编辑器,新建一个c语言的文件,导入头文件并设置一个主函数:
2、程序中设置一个循环的临时变量和接受阶乘和的sum变量,循环中先遍历出20以内的数字子,然后计算每个数的阶乘,在将它们相加起来,因为是一个非常大的数,所以这里sum是double类型的,最后把结果输出就可以了:
3、最后调试编译程序,就会看到输出的20阶乘内的和了,是一个非常大的数。以上就是用c语言求20以内阶乘和的方法:
#include
void main()
{
float a,b,s,sum;
sum=0;
for(a=1;a<=20;a++)
{
for(s=1,b=1;b<=a;b++)
s=s*b;
sum=sum+s;
}
printf("%e\n",sum);
}
先求出第n项阶乘,然后把前n-1项阶乘的和加上第n项。
czx99201的程序不好。重复计算。阶乘不必每次都计算。而且为什么要用浮点?我的程序如下:
main () {
long a=1, sum=0;
int i;
for (i=1; i<=20; i++){
a *= i;
sum += a;
}
printf ("%ld\n", sum);
#include
void main()
{
float a,b,s,sum;
sum=0;
for(a=1;a<=20;a++)
{
for(s=1,b=1;b<=a;b++)
s=s*b;
sum=sum+s;
}
printf("%e\n",sum);
}
#include
main()
{ long long i,s=1,ss=0;
for(i=1;i<=20;i++)
{
s*=i;
ss+=s;
}
printf("ss=%lld",ss);
}
输出ss=2561327494111820313
这才是正确答案