求前20的阶乘(即求1!+2!+3!+、、、、、+20!){要求是用C语言中的循环指令编程}求完整程序。。。

2024-11-20 13:18:14
推荐回答(5个)
回答1:

你好,程序如下: #include
void main()
{
long i,j,sum;
for(i=1,j=1,sum=1;i<=4;i++)
{
j=j*i;
sum+=j;
}
printf("1!+2!+3!+........+20! = %ld\n",sum-1);
}
有疑问提出。望采纳。

回答2:

#include "stdio.h"
int fact(int n)
{
int sum=1,i;
if(n==0 || n==1)
return 1;
for(i=1;i<=n;i++)
sum*=i;
return sum;

}
int main()
{
int sum=0;
int i;
for(i=1;i<=20;i++)
sum+=fact(i);
printf("1!+2!+...+20!=%d\n",sum);
}

回答3:

int sum;
int temp;
for(int i=1;i<=20;++i){
temp=1;
for(int j=i;j>0;j--){
temp=temp*j;
}
sum+=temp;
}

看到大概写了一下,不知道对不对,思路就是这样,利用嵌套循环即可、

回答4:

/*1! + 2! + ...... + 20! = 128425485935180320
Press any key to continue*/#include double fact(unsigned n) {
unsigned i;
double product = 1.0;
for(i = 1; i < n; ++i)
product *= i;
return product;
}int main() {
int i;
double sum = 0;
for(i = 1; i <= 20; ++i)
sum += fact(i);
printf("1! + 2! + ...... + 20! = %.0lf\n",sum);
return 0;
}

回答5:

#include
void main()
{
int i,j,s,sum=0;
for(i=1;i<21;i++)
{
s=1;
for(j=1;j<=i;j++)
{
s=s*j;
}
sum=sum+s;
}
printf("%d\n",sum);
}