用C++编写个函数,对任意整数开平方根

如题所述

一般都是用标准库里的 sqrt方法
要自己实现,通常用的是牛顿迭代
y = x 的平方
那么 y对 x 的导数是 2x
所以迭代式为 x = (y/x + x)/2

double mysqrt(double num)
{
double x = 1.0;
while( fabs( x*x - y) > 1e-5) //达到精度标准就退出
{
x = (y/x +x)/2;
}
return x;
}

然后你会发现,其实算出来的数是有误差的。追问

我信。给你看看正确答案

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-10-24
一般都是用标准库里的 sqrt方法
要自己实现,通常用的是牛顿迭代
y = x 的平方
那么 y对 x 的导数是 2x
所以迭代式为 x = (y/x + x)/2

double mysqrt(double num)
{
double x = 1.0;
while( fabs( x*x - y) > 1e-5) //达到精度标准就退出
{
x = (y/x +x)/2;
}
return x;
}本回答被网友采纳
相似回答