實現 int sqrt(int x) 函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4示例 2:輸出: 2
輸入: 8注:如只需要解本題,**如下:輸出: 2
說明: 8 的平方根是 2.82842…,
由於返回型別是整數,小數部分將被捨去。
class solution
return (int)x0;}}
這裡我做了一些擴充套件,返回小數點後十位的平方根,有需要請自改。
牛頓迭代法中,首先給定乙個初始值x0,然後,通過這個初始值作函式的切線,與y=0交於一點,橫座標為x1, 在通過點(x1,f(x1))作函式的切線,與y=0交於點(橫座標為x2),這樣一直下去,得到xn(若把xn代入方程得到的值與函式實際的值小於某乙個很小的閾值,則我們認為xn就是函式的解)
故要求解sqrt(x),即求解sqrt(t)(t=x), 即求函式 f(x)=x2−t=0的解,我們給初始解賦乙個初始值x0, 那麼我們在點(x0,f(x0))處對曲線作切線, 得到如下方程y−f(x0)=f(x0)′(x−x0),令y=0, 解得x=x0/2+t/(2x0), 則迭代的解x1=x0/2+t/(2x0),像這樣依次迭代xn=xn−1/2+t/(2xn−1), 若f(xn)很接近於0(與0的差絕對值小於某個閾值),這迭代終止,xn即為函式的解。
static double mysqrt(int x)
decimalformat df = new decimalformat("#.###########");
return double.parsedouble(df.format(x0));
}
LeetCode 69 x 的平方根
實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去。usr bin p...
Leetcode 69 x 的平方根
實現 int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2 複製 示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.複製 由於返回型別是整數,小數部分將被捨去。找...
leetcode69x 的平方根
69.x 的平方根 實現int sqrt int x 函式。計算並返回 x 的平方根,其中 x 是非負整數。由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。示例 1 輸入 4 輸出 2示例 2 輸入 8 輸出 2 說明 8 的平方根是 2.82842.由於返回型別是整數,小數部分將被捨去...