折半查找法c语言求平方跟
时间: 2023-06-20 15:08:18 浏览: 104
下面是一个用折半查找法实现的求平方根的 C 语言代码:
```c
#include <stdio.h>
double sqrt(double x) {
if (x < 0) {
return -1.0; // 输入错误,返回 -1.0
}
if (x == 0) {
return 0.0; // 特判 x=0,返回 0.0
}
double l = 0, r = x;
while (r - l > 1e-8) { // 精度设为 1e-8
double mid = (l + r) / 2;
if (mid * mid > x) {
r = mid;
}
else {
l = mid;
}
}
return l;
}
int main() {
double x;
printf("请输入一个数:");
scanf("%lf", &x);
printf("它的平方根是:%lf\n", sqrt(x));
return 0;
}
```
在这个代码中,我们通过折半查找法来逐步逼近平方根。具体来说,我们将平方根所在的区间初始化为 [0, x],然后反复执行以下步骤:
1. 取区间的中点 mid = (l + r) / 2;
2. 如果 mid * mid > x,则说明平方根在左半边区间 [l, mid] 中,令 r = mid;
3. 如果 mid * mid <= x,则说明平方根在右半边区间 [mid, r] 中,令 l = mid。
当区间长度小于某个预设的精度(如 1e-8)时,我们就认为已经找到了平方根,并返回区间左端点 l。
阅读全文