14 x 的平方根

2022-10-08 18:27:15 字數 798 閱讀 4980

/*給你乙個非負整數 x ,計算並返回 x 的 算術平方根 。

由於返回型別是整數,結果只保留 整數部分 ,小數部分將被 捨去 。

思路:注意:不允許使用任何內建指數函式和算符,例如 pow(x, 0.5) 或者 x ** 0.5

從題目的要求和示例我們可以看出,這其實是乙個查詢整數的問題,並且這個整數是有範圍的。

如果這個整數的平方 恰好等於 輸入整數,那麼我們就找到了這個整數;

如果這個整數的平方 嚴格大於 輸入整數,那麼這個整數肯定不是我們要找的那個數;

如果這個整數的平方 嚴格小於 輸入整數,那麼這個整數 可能 是我們要找的那個數(重點理解這句話)。

因此我們可以使用「二分查詢」來查詢這個整數,不斷縮小範圍去猜。

猜的數平方以後大了就往小了猜;

猜的數平方以後恰恰好等於輸入的數就找到了;

猜的數平方以後小了,可能猜的數就是,也可能不是。

很容易知道,題目要我們返回的整數是有範圍的,直覺上乙個整數的平方根肯定不會超過它自己的一半,但是 00 和 11 除外,因此我們可以在 11 到輸入整數除以 22 這個範圍裡查詢我們要找的平方根整數。00 單獨判斷一下就好。

*/public class solution

if (x == 1)

int left = 1;

int right = x / 2;

// 在區間 [left..right] 查詢目標元素

while (left < right) else

}return left;

}}

x的平方根

題目三十九 實現int sqrt int x 函式,計算並返回 x 的平方根。您在真實的面試中是否遇到過這個題?yes 樣例sqrt 3 1 sqrt 4 2 sqrt 5 2 sqrt 10 3 挑戰 o log x class solution if i ix return i if i i x...

x的平方根

實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。看到這個題,當時想到了利用二分法,查詢x的平方根。寫出了如下 public int mysqrt int x else if m m x m m 0 else return l 但是這個方法並不適用大數,因為m...

x的平方根

實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842 由於返回型別是整數,小數部分將被捨去。袖珍計算器演算...