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

 我来答
lyqf365
2014-11-26 · TA获得超过1185个赞
知道小有建树答主
回答量:1291
采纳率:100%
帮助的人:795万
展开全部
一般都是用标准库里的 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;
}

然后你会发现,其实算出来的数是有误差的。
追问
我信。给你看看正确答案

友油妮薅
2015-10-24 · 致力于回答相关问题。
友油妮薅
采纳数:109 获赞数:1222

向TA提问 私信TA
展开全部
一般都是用标准库里的 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;
}
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式