LintCode x的平方根

2021-07-05 14:49:23 字數 721 閱讀 2540

x的平方根

實現 int sqrt(int n) 函式,計算並返回 n 的平方根。

樣例 sqrt(3) = 1

sqrt(4) = 2

sqrt(5) = 2

sqrt(10) = 3

挑戰 o(log(x))

solution: 如果使用蠻力法來求解的話,肯定是會超時的。因此,我們需要使用牛頓迭代法來求解這問題

牛頓迭代法: 對於給定乙個函式f(x) = 0,的解為x0

;那麼我們可以通過牛頓迭代的方法來求解x0

, 其迭代公式為: xk

+1=x

k - f(

xk)f

′(xk

) 當x

k+1−

xk<

ϵ 時停止迭代,

ϵ 為精度, xk

的初始值一般取0,或者1。

在本題中取f(

x)=x

2−n ,因此我們有: xk

+1=x

k−x2

k−n2

∗xk

化簡得: xk

+1=1

2(xk

+nxk

) code :

class

solution while (1);

return

1; }

};

平方根問題

考慮定義在兩正整數上的函式ssr 平方根之和的平方 ssr a,b sqrt a sqrt b 2。牛牛對函式值為整數的情況很感興趣。現在給定整數n和m,請幫助牛牛計算有序對 a,b 的數量,滿足1 a n,1 b m而且ssr a,b 是乙個整數。這道題本質上是要求sqrt ab 是整數,也就是要...

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...

LeetCode x的平方根

在網上學習了其他人的方法以後,寫了出來,學到了新的方法,在此記錄一下 1,返回整型的時候,可以使用二分法 2 返回double時,可以使用牛頓迭代法,a 求取乙個整數的平方根時,其平方根一定是不大於 n 2 1 所以在 0,n 2 1 這個範圍內求取,如下 int mysqrt int x if m...