c语言二分法求平方根
时间: 2023-12-02 19:40:55 浏览: 151
c语言常用算法总结
二分法求平方根是一种常用的方法,其基本思想是:对于一个非负实数n,它的平方根x满足0<=x<=n,因此可以通过二分查找的方式逼近x的值,直到满足精度要求为止。具体实现过程如下:
```c
#include <stdio.h>
double sqrt_binary(double n, double low, double high, double eps) {
double mid = (low + high) / 2.0;
double diff = mid * mid - n;
if (diff < 0) diff = -diff;
if (diff <= eps) return mid;
if (mid * mid > n) return sqrt_binary(n, low, mid, eps);
else return sqrt_binary(n, mid, high, eps);
}
int main() {
double n = 2.0;
double low = 0.0, high = n, eps = 1e-6;
double res = sqrt_binary(n, low, high, eps);
printf("%.2f 的平方根为 %.2f\n", n, res);
return 0;
}
```
上述代码中,sqrt_binary函数采用递归的方式实现二分查找,low和high分别表示查找区间的左右端点,eps表示精度要求。在每次递归中,计算区间的中点mid,然后计算mid的平方与n的差值diff,如果diff小于等于eps,则mid即为所求的平方根;否则,根据mid的平方与n的大小关系,缩小查找区间,继续递归查找。
阅读全文