【LeetCode】X的平方根
阿新 • • 發佈:2018-12-02
實現 int sqrt(int x)
函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4 輸出: 2
示例 2:
輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842..., 由於返回型別是整數,小數部分將被捨去。
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int n=sc.nextInt(); System.out.println(Solution.mySqrt(n)); } } class Solution { static int left=1; static int right=46341; static int mid=0; public static int mySqrt(int x) { if (x==0) return 0; while (left<right) { if (mid==(left+right)/2) break; mid=(left+right)/2; if (mid*mid==x) break; else if (mid*mid<x) left=mid; else right=mid; } return mid; } }
由於int型別最大數的結果為46340,所以結果區間就在0-46341,所以可以採用二分查詢的方法,找出符合條件的結果。
該程式碼在LeetCode測試中正確,但在提交時顯示錯誤,暫不知道原因。