急急!C++小程序。编一程序,求1!+2!+...+n!>le9 时最小n的值

各位帮帮忙吧~阶乘相加。。晕了。。... 各位帮帮忙吧~阶乘相加。。晕了。。 展开
 我来答
gaomeiqin1
2012-04-10
知道答主
回答量:14
采纳率:0%
帮助的人:13.1万
展开全部
我给你刚写的,都运行过了没问题
#include <stdio.h>
#include <math.h>

main()
{
int n=1;
double sum=0,t=1;

while(n>0)
{
t=t*n; //计算阶乘
sum+=t;

if(sum<1e9) //阶乘和小于10的9次方继续求阶乘,否则输出n,然后跳出循环
n++;
else
{
printf("%d\n",n);break;
}
}

}
淦海瑶s1
2012-04-10 · TA获得超过3646个赞
知道大有可为答主
回答量:3341
采纳率:100%
帮助的人:765万
展开全部
1e9,long类型的应该可以满足,我不考虑溢出的问题,只给你一个思路吧

long sum=0,i,a=1;
for(i=1;sum<1e9;i++)
{
a*=i;
sum+=a;
}
这样i-1应该就是你所需要的那个数值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
panyilinlove
2012-04-10 · TA获得超过212个赞
知道答主
回答量:61
采纳率:0%
帮助的人:43.8万
展开全部
先来个自定义函数,功能是求n!。接着调用函数,相加就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2012-04-10
展开全部
#include<iostream>

using namespace std;

int main(void)
{
int factorial_sum = 2;
int factorial = 1;
int x = 0;
int m;
cin >> x;
for (int n = 2; n <= x; ++n)
{
for (m = 2; m <= n; ++m)
{
factorial *= m;
}
factorial_sum += factorial;
factorial = 1;
}
cout << factorial_sum << endl;

return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
byh316196751
2012-04-10
知道答主
回答量:8
采纳率:0%
帮助的人:2.4万
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式