C++循环控制结构问题(for)

来源:百度知道 编辑:UC知道 时间:2024/06/09 12:25:50
题目是:计算S=1+1/2+1/4+1/7+1/11+1/16+1/22+1/29+。。。。当第i项的值<10^(-4)时结束。
我的编程如下:
#include "iostream.h"
void main()
{
double S(1),a,i;
for(i=2;1/((i*i-i+2)/2)<(1E-4);i=i+1)
S=S+1/((i*i-i+2)/2);
cout<<"S="<<S<<endl;
}为什么输出的答案总是1,请求帮忙~详细点,谢谢~
我用的是通项公式~

#include <iostream>
#include<cmath>
using namespace std;
void main()
{
float n=0,sum=0;
while(1/(1+(1+n)*n/2)>=pow(10,-4))
{
sum+=1/(1+(1+n)*n/2);
n++;
}
cout<<sum<<endl;
}

是你的规律找错了

分母应该是下一个的分母 = 上一个分母 + delta(每次加一)

1/((i*i-i+2)/2)<(1E-4)改为大于1/((i*i-i+2)/2)>(1E-4)