C语言求1-20的阶乘之和
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C语言求1-20的阶乘之和相关的知识,希望对你有一定的参考价值。
1+2!+3!+4!...+20! C语言求阶乘,我的语句如下
#include <stdio.h>
int main()
int a=1,sum=1;
int i;
do
a=a*(a+1);
sum=sum+a;
i++;
while(i<=19);
printf("%d\n",sum);
return 0;
他没有进行循环,请问这是为何?
/*
sum = 2561327494111820313
Press any key to continue
*/
#include <stdio.h>int main()
__int64 fact = 1,i,sum = 0;
for(i = 1; i < 21; ++i)
fact *= i;
sum += fact;
printf("sum = %I64d\\n",sum);
return 0;
本回答被提问者和网友采纳 参考技术B int i; 这里定义了 i 这个变量,但是没有初始化为0,所以 i 的值是不确定的,有极大的概率会大于 19 ,所以循环条件就不成立了。 参考技术C 没进循环式因为 i没初始化, i是随机值,可能大于19 参考技术D 你的i没有赋初始值追问
后来对i进行赋值后 感觉这个数据也不对
C语言1到20的阶乘
#include<stdio.h>
#include<stdlib.h>
int unit51()
int i=20,z=20,h=1,sum=0;
for (;z<=1;)
while(i>0)
h=i*h;
i--;
sum=sum+h;
z--;
i=z;
printf("1到20的阶乘和为:\n",sum);
return 0;
做出来不显示结果- -。
那你写吧- -、
追答#include "stdio.h"void main()
int i;
double M=1;
for(i=1;i<=20;i++)
M=M*i;
printf("%2d!=%.0f\\n",i,M);
结果:
1!=1
2!=2
3!=6
4!=24
5!=120
6!=720
7!=5040
8!=40320
9!=362880
10!=3628800
11!=39916800
12!=479001600
13!=6227020800
14!=87178291200
15!=1307674368000
16!=20922789888000
17!=355687428096000
18!=6402373705728000
19!=121645100408832000
20!=2432902008176640000
Press any key to continue追问
= =、是阶乘和
追答#include "stdio.h"
void main()
int i;
double M=1,sum=0;
for(i=1;i<=20;i++)
M=M*i;
sum+=M;
printf("XXX=%.0f\\n",M);
参考技术A #include<stdio.h>int main()
int i=20,j,z=20,h=1,sum=0;
for(j=0;j<20;j++)
while(i>0)
h=i*h;
i--;
sum=sum+h;
z--;
i=z;
printf("1到20的阶乘和为:\\n",sum");
return 0;
以上是关于C语言求1-20的阶乘之和的主要内容,如果未能解决你的问题,请参考以下文章