c 语言二分法平方根
时间: 2023-12-13 09:30:49 浏览: 133
二分法排序算法 C语言实现
3星 · 编辑精心推荐
二分法是一种常用的求解平方根的方法,其基本思想是通过不断缩小搜索范围,最终找到目标值。下面是一个C语言的二分法求解平方根的示例代码:
```c
int mySqrt(int x){
int low=0;
int height=x;
int mid=0,s;
if(x==0) {
return 0;
} else if(x==1) {
return 1;
}
while(low<=height) {
mid=(height+low)/2;
s=x/mid;
if(mid==s) {
return mid;
} else if(mid<s) {
low=mid+1;
} else{
height=mid-1;
}
}
return height;
}
```
该代码中,首先判断输入的x是否为0或1,如果是则直接返回0或1。然后使用while循环进行二分查找,每次将搜索范围缩小一半,直到找到目标值或者搜索范围为空。在每次循环中,计算中间值mid和x/mid的值s,如果mid等于s,则说明mid就是x的平方根,直接返回mid;如果mid小于s,则说明平方根在mid的右侧,将搜索范围缩小到[mid+1, height];如果mid大于s,则说明平方根在mid的左侧,将搜索范围缩小到[low, mid-1]。最终返回height即可。
阅读全文