因此,我试图以两种方式返回数字的平方根,我认为这没有太大不同。其中哪一个具有更高的准确性,为什么?据我所知第二个更好,因为我相信默认的“允许错误”(不确定如何调用)比我设置的变量“ eps”低得多:0.00001。那是对的吗?这与代码块,编译器或处理器本身有关吗?
第一种方法:
#include <iostream>
using namespace std;
int main()
{
double a,b;
double x;
cin>>x;
int nr=0;
//double eps=0.00001;
a=1;
do
{
b=a;
a=(b+x/b)/2;
nr++; //used to keep track of number of steps made
}while(a!=b);
cout<<a;
return 0;
}
除了do ... while()条件之外,第二种方法是相同的
#include <iostream>
using namespace std;
int main()
{
double a,b;
double x;
cin>>x;
int nr=0;
double eps=0.00001;
a=1;
do
{
b=a;
a=(b+x/b)/2;
nr++;
}while(a-b>=eps || b-a>=eps);
return 0;
}