C语言中一个计算题1!+2!+3!+...+20!是什么意思,怎么写程序

2025-03-24 18:20:36
推荐回答(5个)
回答1:

/* Note:Your choice is C IDE */
/*既然你的这问题中包含三问我就一个一个的回答:
1、n!(n为自然数)表示自然数n的阶乘,所谓的阶乘就是从1一直乘到n。如1!=1,2!=1X2,3!=1X2X3!如此类推,20!=1X2X3X4……20。
2、如果理解1条了,我想这也算多余了。就是求1+1X2+1X2X3+1X2X3X4+……+1X2X3X……20.
3、编程方法:*/
double fun(int x)//由于所求数很大,所以要用双精度,否则出错
{
if (x == 1)
{
return 1;
}
else
{
return (double)(x*fun(x-1));
}
}
#include "stdio.h"
void main()
{
int i,n;
double sum=0;//双精度数
printf("请输入所求阶乘数:");
scanf("%d",&n);
for(i=1;i<=n;i++)
sum+=fun(i);
printf("所求阶乘和为sum=%lf",sum);//注意用双精度输出
}
//应该满足楼主要求了,不懂之处再问吧

回答2:

"!"是阶乘的意思
比如:5! = 1*2*3*4*5

举例。。
1!+2!+3!+4!
= 1 + 1*2 + 1*2*3 + 1*2*3*4

那么1!+2!+3!+...+20!懂了么?

程序的话,您可以用递归
提示一个
5! 可以用这样的递归函数 sum = fun(5)

int fun(int x)
{
if (x == 1)
{
return 1;
}
else
{
return (x*fun(x-1));
}
}

那么求1!+2!+3!+...+20!的和,自己写吧~

回答3:

求1的阶乘加到20的阶乘的和。
long fun(int n)
{
if n=1
return 1;
else return n*fun(n-1);
}
main()
{
int i;
long sum=0;
for(i=1;i<=20;i++)
{
sum=sum+fun(i);
}
printf("%ld",sum);
}
这个题目我以前好像做过,好像用长整数就可以满足要求。
楼主自己运行一下吧。

回答4:

这是求1的阶乘加到20的阶乘
下面是代码:
#include u>
void main()
{int s=0,i;
for(i=1;i<=20;i++)
s+=i*i;
printf("%d",s);
}

回答5:

求1的阶乘加到20的阶乘的合