C语言题目 1!+2!+3!……20!=? 怎么写
答案:4 悬赏:0 手机版
解决时间 2021-07-31 12:28
- 提问者网友:玫瑰园
- 2021-07-30 22:50
1!+2!+3!……20!=?
最佳答案
- 五星知识达人网友:狂恋
- 2021-07-31 00:21
//由于1的阶乘累加到20的阶乘得到的结果很大...经过测试.int和long int都存放不了这么大的数.
所以用double型变量来存放.
//测试通过. 代码如下:
#include <stdio.h>
main()
{
double s=0,t;
int i,j;
for(i=1;i<=20;i++)
{
t=1;
for(j=1;j<=i;j++)
t*=j;
s+=t;
}
printf("1!+2!+3!……20!=%.0f\n",s);
}
全部回答
- 1楼网友:污到你湿
- 2021-07-31 02:28
可以先建立一个求阶层的函数
然后用循环的方法比较简单.
#include<iostream>
using namespace std;
double Layer(int i)
{ int k=1; while (i > 0) {k=k*i; i--; } return(k); }
int main()
{
int i;double j=0;
for (i = 20; i >0; i --)
j+=Layer(i);
cout << j;
}
算出来等于
4.56301e+009
- 2楼网友:等灯
- 2021-07-31 01:41
#include<stdio.h>
void main()
{
int n;
long s=0;
long a=1;
for(n=1;n<=20;n++)
{
a=a*n;
s=s+a;
}
printf("%ld",s);
}
- 3楼网友:酒醒三更
- 2021-07-31 00:28
20!...太大了,N个亿个亿个亿...存不下
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯