首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

尘封已久的代码 拿出来问问…解决思路

2012-03-09 
尘封已久的代码 拿出来问问……啊……想起来这段代码有段历史了 一直没解决 今天突然翻到 拿出来问问吧……这段

尘封已久的代码 拿出来问问……
啊……想起来这段代码有段历史了 一直没解决 今天突然翻到 拿出来问问吧……

这段代码是求2/1+3/2+5/3+8/5...前20项的和


前一项分子+分母=后一项分子


但是这段该死的代码怎么算都是21……郁闷……无语……

C/C++ code
#include <iostream>using namespace std;int main(){    float a=2,b=1,sum,i;    for(i=1;i<=20;i++)    {        sum=sum+(a/b);        a=a+b;        b=a;    }    cout<<"2/1+3/2+5/3+8/5...前20项和是:"<<sum<<endl;    system("pause");    return(0);}        


[解决办法]
C/C++ code
int main(){    int a=2, b=1, i;    float sum = 0;    for(i=1;i<=20;i++)    {        sum += (a*1.0/b);        a=a+b;        b=a-b;    }    cout<<"2/1+3/2+5/3+8/5...前20项和是:"<<sum<<endl;    return 0;}
[解决办法]
探讨

引用:
算的和你说的不一样啊,程序算的是
2/1+3/3+6/6+12/12...
结果循环中后19个sum都加1,第一个2/1加的是2,结果当然是21...


……天啊!!!知道吗 犯2只是一瞬间的事情 但是就像短路一样无法挽回……!!

热点排行