面试阿里口碑的时候遇到了这个问题,这里做个笔记
1.二分法
#define eps 0.00001
float SqrtByDichotomy(float n)
{
if (n < 0)
{
return -1.0;
}
else
{
float low, up, mid, last;
low = 0, up = (n>=1?n:1);
mid = (low + up) / 2;
do {
if (mid*mid>n)
up = mid;
else
low = mid;
mid = (up+low)/2;
} while (fabsf(mid - last) > eps);
return mid;
}
}2.牛顿迭代法
double Sqr(double a) {
double x = a, y = 0.0;
while (fabs(x - y) > 0.00001) {
y = x;
x = 0.5*(x + a / x);
}
return x;
}
本文介绍两种求解平方根的有效算法:二分法与牛顿迭代法。通过具体的C/C++实现代码,展示了如何用二分查找和牛顿迭代逼近任意正数的平方根。
497

被折叠的 条评论
为什么被折叠?



