当前位置:首页 » 编程语言 » c语言求1到20的阶乘

c语言求1到20的阶乘

发布时间: 2022-02-24 07:40:37

㈠ 用c语言求1~20的阶乘之和!

/**
**程序描述:求求1~20的阶乘之和。
**算法思路:先求出每一项的阶乘值,然后将所有项的阶乘值相加。
*/
#include<stdio.h>
#defineN20
typedefunsignedlonglonguInt64;//自定义类型
//求出每一项阶乘值的函数
uInt64fact(intn)
{
inti;
uInt64s;
for(i=s=1;i<=n;i++)
s*=i;//从1开始循环累加相乘
returns;
}

intmain()
{
uInt64s;
inti;
for(i=1,s=0;i<=N;i++)
s+=fact(i);//从第1项开始循环累加每一项的阶乘值
printf("1!+2!+3!+……+20!=%llu ",s);
return0;
}

㈡ 1到20阶乘的和用c语言表达

#include <stdio.h>

long jiecheng(int x)

{

long int i,k=1;

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

k=k*i;

return k;

}

int main()

{

long int j,k=0;

int i;

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

{

j=jiecheng(i);

k+=j;

}

printf("%ld ",k);

}

(2)c语言求1到20的阶乘扩展阅读

使用其他方法实现求1到20阶乘的和:

public class Main{

public static void main(String[] args){

int i,j;

int sum=0;

int a=1;

for(i=1;i<=20;i++){

for(j=1;j<=i;j++){

a*=j;

}

sum+=a;

}

System.out.print("sum=1!+2!+3!+...+20!="+sum);

}

}

㈢ 用c语言写1的阶乘到20阶乘的和,怎么写

#include<stdio.h>
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\n",sum);
//输出sum.
}

㈣ 求1到20的阶乘之和的c语言程序怎么编写

#include <stdio.h>

long jiecheng(int x)

{

long int i,k=1;

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

k=k*i;

return k;

}

int main()

{

long int j,k=0;

int i;

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

{

j=jiecheng(i);

k+=j;

}

printf("%ld ",k);

}

(4)c语言求1到20的阶乘扩展阅读:

用递归方法

#include<stdio.h>

int func(intn){

int m=0;

if(n==1){

return1;

m=n*func(n-1);

returnm;

int main(intargc,constchar*argv[]){

int sum=0;

for(inti=1;i<=20;i++)

sum=sum+func(i);

printf("%d\n",sum);

return0;

㈤ C语言,求1到20阶乘,初学者,求帮助!

#include<stdio.h>
void main()
{
int i,j,n;
double sum;
double a[20]={1};
j=1;
i=1;
while(j<=19)
{
if(i-1==0)
{
printf("%d的阶乘为%lf\n",i,a[j-1]);//这里是1的阶乘
}
if(i<(j+1))
{
i++;
a[j]=a[j-1]*i;
printf("%d的阶乘为%lf\n",i,a[j]);
}
j++;
}
}
楼主,你把括号弄清楚丫,思想是对的,但是你把while对应的括号弄清楚,你程序中的第二个while()完全没有必要,用if()就行

㈥ C语言1到20的阶乘

#include<stdio.h>
intmain()
{
inti=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的阶乘和为: ",sum");
return0;
}

㈦ 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)。

㈧ 求1到20的阶乘和(C语言算法)看看哪儿有错

错误在于你每次计算了n的阶乘,放在变量y中,下一次循环的时候没有清除y中的数,还是上一个数的阶乘,直接拿来乘了。
可以在sum=y+sum;这一句下面加一句y=1;

㈨ 1到20的阶乘 C语言

用递归就行了,问题是阶乘1到20已经溢出了unsigned
long
int的最大数值,1到16就已经溢出了,何况你的还是有符号的,比无符号的少差不多一半.
这个用递归实现的.
#include<stdio.h>
void
main()
{
int
fac(int
x);
unsigned
long
int
y;
int
x;
printf("请输入一个整数:");
scanf("%d",&x);
y=fac(x);
printf("%ld\n",y);
}
int
fac(int
x)
{
unsigned
long
int
y;
if(x==1)
{
y=1;
}
else
y=fac(x-1)*x;
return
y;
}

㈩ C语言求1-20的阶乘之和

/*

sum = 2561327494111820313

Press any key to continue

*/

#include<stdio.h>

intmain(){
__int64fact=1,i,sum=0;
for(i=1;i<21;++i) {
fact*=i;
sum+=fact;
}
printf("sum=%I64d ",sum);
return0;
}
热点内容
kettle源码下载 发布:2025-01-09 23:01:36 浏览:733
casejava 发布:2025-01-09 22:56:56 浏览:698
oracle如何导出数据库 发布:2025-01-09 22:55:13 浏览:771
编程ppm 发布:2025-01-09 22:49:25 浏览:729
蒸汽之都侦探安卓按键在哪里 发布:2025-01-09 22:48:30 浏览:819
怎么修改域账号的配置文件 发布:2025-01-09 22:30:44 浏览:478
49葫芦娃怎么改密码 发布:2025-01-09 22:30:00 浏览:844
博德之门安卓安装哪里 发布:2025-01-09 22:14:40 浏览:316
服务器电脑用关机吗 发布:2025-01-09 21:53:01 浏览:464
机顶盒用户和密码是什么 发布:2025-01-09 21:52:24 浏览:385