+ -
当前位置:首页 → 问答吧 → 求开方的巴比伦算法,运行时却有误!

求开方的巴比伦算法,运行时却有误!

时间:2011-12-24

来源:互联网

#include<iostream>//这是巴比伦算法求sqrt(j)的程序!为什么j!=2,结果就一直是1.41421呢?!
#include<cmath>
using namespace std;
void main()
{
double E=5e-8;
double j;
cin>>j;
while(fabs(j*j-j)>E)
{
cout<<j<<endl;
j=(j+2.0/j)/2.0;
}
cout<<"sqrt(j)="<<j<<","<<j*j<<endl;
}

作者: huanzhi1990   发布时间: 2011-12-24

C/C++ code

#include<iostream>
#include<cmath>
using namespace std;
void main()
{
    double E=5e-8;
    double i,j,r;
    cin>>j;
    i=j/2;
    while(fabs(i-r)>E)
    {        
        r=j/i;
        i=(i+r)/2;
    }
    cout<<"sqrt(j)="<<i<<","<<i*i<<endl;
}


作者: shenxinji   发布时间: 2011-12-24