[leetcode]x的平方根(Sqrtx)
阿新 • • 發佈:2018-12-19
x的平方根(Sqrtx)
實現 int sqrt(int x)
函式。
計算並返回 x 的平方根,其中 x 是非負整數。
由於返回型別是整數,結果只保留整數的部分,小數部分將被捨去。
示例 1:
輸入: 4 輸出: 2
示例 2:
輸入: 8 輸出: 2 說明: 8 的平方根是 2.82842..., 由於返回型別是整數,小數部分將被捨去。
題解1(牛頓迭代法):
class Solution { public: int mySqrt(int x) { long res = x; while (res * res > x) { res = (res + x / res) / 2; } return res; } };
這個方法是我查詢了一下看到的,以前還真沒太聽過(數學不好是硬傷)下面是牛頓迭代法的數學推導
簡單解釋就是:首先隨便猜一個近似值x,然後不斷令x等於x和a/x的平均數,迭代個六七次後x的值就差不多是平方根的結果了。
題解2(偷雞):
class Solution {
public:
int mySqrt(int x) {
int a;
a=sqrt(x);
return a;
}
};
emmm..都懂