//get square root
double sqrt_t(double x,double y)
{
if((((x*x) - y < 1) && ((x*x) - y > 0)) || (((x*x) - y > -1) && ((x*x) - y < 0)))
//if(x*x == y)
return x;
else
{
x=((y/x)+x)/2; //牛顿迭代法
x=sqrt_t(x,y); //递归调用
return x;
}
double sqrt_t(double x,double y)
{
if((((x*x) - y < 1) && ((x*x) - y > 0)) || (((x*x) - y > -1) && ((x*x) - y < 0)))
//if(x*x == y)
return x;
else
{
x=((y/x)+x)/2; //牛顿迭代法
x=sqrt_t(x,y); //递归调用
return x;
}
}
参考:http://blog.csdn.net/jixingzhong/article/details/1486121
http://zh.wikipedia.org/wiki/%E7%89%9B%E9%A1%BF%E8%BF%AD%E4%BB%A3%E6%B3%95