| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1235 人关注过本帖
标题:分析下面阶乘代码问题。。。
只看楼主 加入收藏
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
回复 6楼 lsd98
那个写法没问题,先判断真假,然后移位,然后判断移位后的数的真假
2010-04-03 23:29
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
回复 7楼 Lyy_Taurus
不好意思,看错了,好久不看C++了,都忘了,突然想起来,他是用C++写的,cin>>是输入语句,好像和scanf差不多,呵呵
2010-04-03 23:35
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
回复 3楼 lsd98
突然想起是C++语句,应该是把输入的数和自己相与,只要不是0就都是一,就都可以循环
2010-04-03 23:37
韩明海
Rank: 8Rank: 8
等 级:蝙蝠侠
帖 子:253
专家分:749
注 册:2010-4-3
收藏
得分:0 
回复 9楼 lyb151
我没怎么学过C++,你的using namespace std;
                    system("pause");
是什么意思?谢谢
你可以在sum+=1/(i+1)后cout<<sum<<endl一下就知道了,
而且C++里是不也可以double sum = 0;
                    int i = 0;
2010-04-03 23:43
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
收藏
得分:10 
程序代码:
#include<iostream.h>
int main()
{
    float sum=0,n=1,limit;
    cout<<"请输入一个limit数:"<<endl;
    cin>>limit;
    while(sum<=limit)
    {
      sum=sum+1/n;
      n++;
     }
     cout<<n<<endl;
     return 0;
}
你要的
就是任意输入一个数x,求(1/2+1/3+。。。1/(i+1))>x 的最小i

[ 本帖最后由 lsd98 于 2010-4-4 09:46 编辑 ]
2010-04-04 09:37
lsd98
Rank: 2
等 级:论坛游民
帖 子:51
专家分:26
注 册:2010-3-30
收藏
得分:0 
回复 14楼 韩明海
system("pause");是暂停 相当于getch();
C++  里面cin>>x是输入  但没有while(cin>>x&&x)的写法

[ 本帖最后由 lsd98 于 2010-4-4 09:44 编辑 ]
2010-04-04 09:39
chengwen1016
Rank: 2
等 级:论坛游民
帖 子:14
专家分:60
注 册:2010-3-6
收藏
得分:0 
回复 楼主 lyb151
这样就行了。只要改动一点点。
sum+=1.0/(i+1);  因为 1/(i+1) 是整形的,每次都是等于0
所以 sum 每次累加的都是 0 出现死循环 1.0就可以告诉计算机这里要浮点型结果

#include<iostream>
using namespace std;
int main()
{
    double sum;
    float x;
    int i;
    while(cin>>x&&x)
    {
        i=0;
        sum=0;
        while(sum<x)
        {
            i++;
            sum+=1.0/(i+1);
        }   
        cout << i << " card(s)" << endl;
    }
    system("pause");
    return 0;
}
2010-04-06 12:03
chengwen1016
Rank: 2
等 级:论坛游民
帖 子:14
专家分:60
注 册:2010-3-6
收藏
得分:0 
以下是引用lsd98在2010-4-4 09:39:33的发言:

system("pause");是暂停 相当于getch();
C++  里面cin>>x是输入  但没有while(cin>>x&&x)的写法

while(cin>>x && x) 的意思是输入x并且它要不等于0
因为 x=0 的话条件为假 while 循环结束
2010-04-06 12:04
快速回复:分析下面阶乘代码问题。。。
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.021358 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved