郑州网站建设工作,国外十大免费服务器和域名,企业网站建设套餐,建筑工程总承包合同范本一、问题描述 二、实现思路
1.题目不能直接调用Math.sqrt(x)
2.这个题目可以使用二分法来缩小返回值范围 所以我们在leftright时 使 mid (leftright)/21 当mid*midx时#xff0c;说明right范围过大#xff0c;rightright-1 当mid*midx时#xff0c;说明left范…一、问题描述 二、实现思路
1.题目不能直接调用Math.sqrt(x)
2.这个题目可以使用二分法来缩小返回值范围 所以我们在leftright时 使 mid (leftright)/21 当mid*midx时说明right范围过大rightright-1 当mid*midx时说明left范围太小leftmid
当leftright时跳出循环返回left 三、代码实现
import java.util.*;public class Solution {/*** 代码中的类名、方法名、参数名已经指定请勿修改直接返回方法规定的值即可** * param x int整型 * return int整型*/public int sqrt (int x) {if(x0||x1){return x;}else{//在函数图像中可以看出当x4时√x x/2//由于以上性质可以使用二分法去缩小返回值范围int res1;int left1;int rightx;while(leftright){int mid(leftright)/21;int tmpsqrtx/mid;if(midtmpsqrt){//等价于mid*midxrightmid-1;}else{leftmid;}}return left;}}
}
四、刷题链接
求平方根_牛客题霸_牛客网