用C语言 从一的阶乘加到二十的阶乘

作者&投稿:侨竖 (若有异议请与网页底部的电邮联系)
用C语言编写程序:20∑n=1(n!),即1!+2!+3!+……+19!+20!(从1的阶乘一直加~

#include

double factorial(int n);//函数声明

int main( )
{
int i = 0;
const int MAX_NUM = 20;
double sum = 0;

//求1!+2! +...+20!
for (i=1; i<=MAX_NUM; i++)
sum = sum + factorial(i);

printf("1!+...+%d!=%.0f
",MAX_NUM, sum);//输出结果信息
}
//求阶乘函数的定义,20!的阶乘很大,需要用浮点数返回类型
double factorial(int n)
{
int i=0;
double s=1.0; //存放阶乘n!的乘积
if ( n<1 ) return -1;//参数不对,返回负数
for ( i=1; i<=n; i++ )
{
s = s*i;
}
return s;
}

//纯手工敲入,并运行验证,请给分,谢谢

#include
void
main()
{
int
i;
double
t=1,sum=0;
//由于20的阶乘int和long
int都放不下.所以用double.
for(i=1;i<=20;i++)
//从1循环到20.
{
t
=
t
*
i;
//计算1~20的阶乘.
sum
=
sum
+
t;
//将1~20的阶乘累加到sum中.
}
printf("%.0f
",sum);
//输出sum.
}

1、找到文件,新建,项目,点击项目新建一个文件。

2、会弹出这样的界面,选择为win32控制台程序,输入名称,然后点击确定。

3、在源文件右键,添加,新建项目;然后跳出窗口选择C++文件(.cpp),最后点击添加。

4、完成以上步骤,出现一个.cpp空文件文件请输入以下代码

5、显示结果如下:



main()

{

floatn,s=0,t=1;

for(n=1;n<=20;n++)

{

t*=n;

s+=t;

}

printf("1+2!+3!...+20!=%e
",s);

}

扩展资料

C语言求阶乘

#include<stdio.h>

voidmain(void)

{

intjiecheng(intn);

intn,s;

do

{

printf("求谁的阶乘:");

scanf("%d",&n);

s=jiecheng(n);

if(s!=0)

{

printf("%d的阶乘是%d
",n,s);

}

printf("
");

}while(1);

}

intjiecheng(intn)

{

inti=1,s=1;

if(0==n)

return(s=1);

elseif(n>0)

{

for(i=1;i<=n;++i)

s=s*i;

return(s);

}

else

{

printf("ERROR!Again:
");

return(s=0);

}

}



#include<stdio.h>
int main()
{
long r=1l;
for(long i=1l;i<=20;i++)
r*=i;
printf("%ld",r)
return 0;
}

int i, j;
double sum, product;
sum=0.0;
for (i=1; i <= 20; i++)
{
product=1;
for(j=1; j <= i; j++)
{
product *= j;
}
sum += product;
}


信宜市17850916019: 用c语言编程,求从1的阶乘一直加到20的阶乘. -
魏种金锁: #include<stdio.h> 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项.

信宜市17850916019: 求个C语言程序:将1到20的阶乘累加 -
魏种金锁: #includemain() { double res=1.0; int i; for(i=1;i

信宜市17850916019: c语言 1到20的阶乘之和 -
魏种金锁: i始终大于1,会出现死循环的,同时,20的阶乘相加,那结果会很大的,用int保存不下,得用double类型!示例代码,有问题再用度娘自己搜索吧.. //win7 x64 + vc6.0编译通过 #include<stdio.h> #include "stdlib.h" int main() { double fac(int n...

信宜市17850916019: C语言,算1到20阶乘的和 -
魏种金锁: s*=i相当于s=s*i,假如某一次循环中i=k(k代表某个自然数),s=S那么执行完s*=i后s=S*k;下一次循环时i=k+1,执行完s*=i后s=S*k*(k+1).而初始情况是i=1,s=1,根据数学归纳法可以推导出s中保存的值是1*2*...*(k+1).

信宜市17850916019: 跪求:编写c语言程序,求1到20的阶乘之和
魏种金锁: 只是将上面仁兄的稍改了一下而已 #include <stdio> void main() { int t=1; int s = 0; for(int i=1;i<=20;i++) { t=t*i; s=s+t; } printf("%d", s); }

信宜市17850916019: 1阶乘到20阶乘的C++代码 -
魏种金锁: //用double类型可以解决这个问题,long类型的范围不够 #include #include #include #define N 20 double factorial(int x) { double sum=1; int i; for(i = 1;i <= x;i++) { sum*=i; } return sum; } int main() { double sum=1; int i; for(i = 1;i <= N;i++) { sum *= factorial(i); } printf("%.0f",sum); system("PAUSE"); return 0; }

信宜市17850916019: C语言求1 - 20的阶乘之和 -
魏种金锁: /* sum = 2561327494111820313 Press any key to continue */1 2 3 4 5 6 7 8 9 10 11#include <stdio.h>intmain() {__int64fact = 1,i,sum = 0;for(i = 1; i < 21; ++i) {fact *= i;sum += fact;}printf("sum = %I64d\n",sum);return0; }

信宜市17850916019: 用c语言实现1!+2!+3!+……+20! -
魏种金锁: 由于1的阶乘累加到20的阶乘得到的结果很大,int和long都存放不了这么大的数,所以用double型变量来存放, 代码如下: #includemain() { double s=0,t; int i,j; for(i=1;i

信宜市17850916019: 求1到20的阶乘和,,用C语言怎么整,,请高手来看看,,我这个对不??谢了 -
魏种金锁: 用递归调用吧最简单 int fan(int a) { sum+=20*fan(a-1); } 考试必考,最后用fun(20),但要sum在外面定义就出来了

信宜市17850916019: 在C++中怎样编写1的阶乘加2的阶乘一直加到20的阶乘???? -
魏种金锁: #include int fac(int n){ if(n==0||n==1) return 1; else return fac(n-1)*n; } void main(){ int i,sum=0; for(i=1;i<=5;i++) sum+=fac(i); printf("%d",sum); } 到5的阶乘...你参照

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网