#include
#include
using namespace std;
//x(n + 1) = (xn+a/xn)/2
void NewtonSqrt(double a,double &x){
a = x - (x + a / x) / 2;
if (a<= 0.00001)
return;
x = (x + a / x) / 2;
NewtonSqrt(a, x);
}
void main(){
double a = 3;
double x = a / 2;
cout << x <<endl;
_getch();
}
/ 2这个是整除,要/ 2.0
void NewtonSqrt(double a,double &x),这里&x是引用吧,是你的本意吗?还有就是你压根就没有在主函数用到你定义的那个函数吧?
另外都已经using namespace std;了,那为什么还要用void main()?
void NewtonSqrt(double a,double &x)
{
a = x - (x + a / x) / 2;
if (a<= 0.00001)
return;
x = (x + a / x) / 2;
NewtonSqrt(a, x);
}
int main()
{
double a = 3;
double x = a / 2;
NewtonSqrt(a,x);
cout << x <<endl;
getchar();
return 0;
}