折半查找法c语言求平方跟
时间: 2023-07-02 19:03:38 浏览: 76
折半查找法可以用来求一个数的平方根,思路如下:
1. 定义一个变量 `low` 和 `high`,分别表示平方根可能的最小值和最大值。初值分别为0和这个数本身。
2. 在一个循环中,每次取中间值 `mid`,计算 `mid` 的平方是否等于这个数,如果相等,则直接返回 `mid`。
3. 如果 `mid` 的平方小于这个数,则将 `low` 更新为 `mid`,否则将 `high` 更新为 `mid`。
4. 重复执行步骤2和3,直到 `low` 和 `high` 的值足够接近,即它们的差小于一个足够小的数,比如0.00001。
代码实现如下:
```c
#include <stdio.h>
double sqrt_binary_search(double x) {
double low = 0, high = x;
while (high - low > 0.00001) {
double mid = (low + high) / 2;
double square = mid * mid;
if (square == x) {
return mid;
} else if (square < x) {
low = mid;
} else {
high = mid;
}
}
return (low + high) / 2;
}
int main() {
printf("%f\n", sqrt_binary_search(2)); // 1.414214
printf("%f\n", sqrt_binary_search(4)); // 2.000000
printf("%f\n", sqrt_binary_search(9)); // 3.000000
return 0;
}
```
阅读全文