自己寫sqrt()函數,LeetCode

// 牛頓法
// f(x) = x^2 - a
// 求解 a 的平方根, 即求解 f(x) = 0 的解

// f(x) ~= f(x0) + (x - x0) * f'(x0);
// 令 f(x) = 0   =>   x = (x0 + a/x0) /2	=>    得到該迭代公式.

class Solution {
    public int mySqrt(int a) {
        long x0 = a;

        while (x0*x0 > a) {
        	x0 = (x0 + a / x0) / 2;
        }
        return (int)x0;
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章