| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 534 人关注过本帖
标题:循环语句的题目,麻烦帮看下对不。
只看楼主 加入收藏
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
结帖率:91.67%
收藏
已结贴  问题点数:20 回复次数:7 
循环语句的题目,麻烦帮看下对不。

计算1-1/2+1/3-1/4+……+1/99-1/100=?

c++   我用程序写好,等于2,不知道对不对啊?麻烦帮忙看下,谢谢了。

#include <iostream>
using namespace std;
void main()
{
    int n,i,sum1,sum2,sum;
    n=1;i=2;
    sum1=1;sum2=1/2;
    while(n<=100)
    {sum1=sum1+1/n;n=n+2;}
    while(i<=100)
    {sum2=sum2+1/i;i=i+2;}
    sum=sum1-sum2;
    cout<<"1-1/2+1/3-1/4+……+1/99-1/100="<<sum<<endl;
}
搜索更多相关主题的帖子: void 计算 include 
2011-04-14 15:28
Lyone
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:99
专家分:195
注 册:2010-12-7
收藏
得分:6 
void main()
{
    //int n,i,sum1,sum2,sum;
    double n,i,sum1,sum2,sum;//因为有小数,所以不能用int型
    n=1;i=2;
    sum1=1;sum2=1/2;
    while(n<=100)
    {sum1=sum1+1/n;n=n+2;}
    while(i<=100)
    {sum2=sum2+1/i;i=i+2;}
    sum=sum1-sum2;
    cout<<"1-1/2+1/3-1/4+……+1/99-1/100="<<sum<<endl;
}
2011-04-14 15:46
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:0 
可是感觉用 int 结果也不会是 2 呀。
2011-04-14 17:08
qq1023569223
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:湖南科技大学
等 级:贵宾
威 望:26
帖 子:2753
专家分:13404
注 册:2010-12-22
收藏
得分:6 
程序代码:
#include <iostream>
using namespace std;
void main()
{
    int n,i;
    double sum1,sum2,sum;

    n=1;
    i=2;
    sum1=1.0d;
    sum2=1/2.0d;
   
    while(n<=100)
    {  sum1=sum1+1.0d/n;  n=n+2; }
  
    while(i<=100)
    {  sum2=sum2+1.0d/i;  i=i+2; }

    sum=sum1-sum2;

    cout<<"1-1/2+1/3-1/4+……+1/99-1/100="<<sum<<endl;
} 
注意数据类型的转换!
int n=2;
double m=2;
1/n=0;
1/m=0.5;

   唯实惟新 至诚致志
2011-04-14 17:21
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
太感谢各位了.~

不过,话说那个正确答案到底是多少啊?~
2011-04-14 18:19
Lyone
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:99
专家分:195
注 册:2010-12-7
收藏
得分:6 
程序代码:
#include "stdafx.h"
#include <iostream>
using namespace std;

int main(int argc, char* argv[])
{
    double Sum = 0.0;
    for (int i=1;i<=100;i++)
    {
        if (i%2)
            Sum = Sum + 1.0/double(i);
        else
            Sum = Sum - 1.0/double(i);
    }
    cout<<Sum;
    return 0;
}
我这段代码运行结果是:0.6188172
2011-04-14 22:40
pangding
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:北京
等 级:贵宾
威 望:94
帖 子:6784
专家分:16751
注 册:2008-12-20
收藏
得分:2 
我算的结果和 6楼 一样。

反正算的项越多,这个东西的结果就应该越接近 ln2 = 0.69314718055994530941723212145818。
它是 ln(1+x) 在 x=1 点处的泰勒级数的前100项。
2011-04-15 08:09
糖包包
Rank: 1
等 级:新手上路
帖 子:38
专家分:0
注 册:2011-3-28
收藏
得分:0 
我表示不理解了,

我用2楼得算出来等于1.6什么什么的。
用4楼得算等于1.1什么什么的,
可是大致看一下,除了多了个.0其他的都一样啊,~
2011-04-15 14:54
快速回复:循环语句的题目,麻烦帮看下对不。
数据加载中...
 
   



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

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