永发信息网

C++ 1+2!+3!+4!....20!

答案:5  悬赏:0  手机版
解决时间 2021-05-02 08:50
  • 提问者网友:斑駁影
  • 2021-05-02 04:54
帮写一下程序
最佳答案
  • 五星知识达人网友:蕴藏春秋
  • 2021-05-02 06:12

#include <stdio.h>
void main()
{
long unsigned double s=0,t=1;
int ni=1,n;
printf("请输入N值:");
scanf("%d",&n);
while (ni<=n)
{
t=t*ni;
s=s+t;
ni++;
}
printf("%d的结果为:%.0f\n",n,s);
}


这是从1 加到N 的阶乘的程序,你改改就行了,不过,一定不能用INT 型的,要溢出的

全部回答
  • 1楼网友:洎扰庸人
  • 2021-05-02 08:48

因为 20! 超过int,或double 或long int的范围,所以我采用了unsigned long long ,

这个需要在linux下编译估计才算的出来。

普通的win32的机器估计算到后来都变成负数了吧。

  • 2楼网友:十年萤火照君眠
  • 2021-05-02 08:19

#include<iostream.h>

int fun(int s){

if(s==1&&s==0){

return 1;

}else{

return s*fun(s-1);

}

} void main() { int a=20; cout<<fun(a)<<endl; }

没编程工具大致应该可以。

  • 3楼网友:英雄的欲望
  • 2021-05-02 07:10
#include<iostream.h> void main() { int i,t=1,sum=0; for(i=2;i<=20;i++) { t*=i; sum+=t; } cout<<sum<<endl; }
  • 4楼网友:往事埋风中
  • 2021-05-02 06:33
#include <iostream> using namespace std; int main() { double s, t; int i; s = 0; t = 1; for ( i = 1; i <= 20; ++i ) { t *= i; s += t; } cout << "1!+2!+3!+...+20! = " << s << endl; return 0; }
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯