码迷,mamicode.com
首页 > 其他好文 > 详细

Sqrt(x)

时间:2014-06-10 06:49:45      阅读:274      评论:0      收藏:0      [点我收藏+]

标签:java   leetcode   sqrt   

题目

Implement int sqrt(int x).

Compute and return the square root of x.

方法一

使用二分查找,注意int的边界问题,使用除法。
    public int sqrt(int x) {
        if (x  <= 1) {
            return x;
        }
        int start = 0;
        int end = x;
        while (start <= end) {
            int median = start + (end - start) / 2;
            int temp = x / median;
            if (temp == median) {
                return median;
            } else if(temp < median) {
                end = median - 1;
            } else {
                start = median + 1;
            }
        }
        return end;
    }


方法二

使用牛顿迭代法。
    public int sqrt(int x) {
        double pre;
        double cur = 1;
        do {
            pre = cur;
            cur = (pre + x /pre) / 2.0;
        }while(Math.abs(cur - pre) > 0.00000001);
        return (int) cur;
    }


Sqrt(x),布布扣,bubuko.com

Sqrt(x)

标签:java   leetcode   sqrt   

原文地址:http://blog.csdn.net/u010378705/article/details/29651439

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!