题目描述 实现函数 int sqrt(int x). 计算并返回x的平方根(向下取整)

解法一:可以直接使用库……

public class Solution {
    
    
    public int sqrt(int x) {
    
    
        return (int) Math.sqrt(x);
    }
}

解法二:根据平方数的性质——连续n个奇数相加的结果一定是平方数。
如:9=1+3+5;
16=1+3+5+7;
所以,不断的进行奇数相加,并判断x大小即可。代码如下:

public class Solution {
    
    
    public int sqrt(int x) {
    
    
        int i = 1;
        int res = 0;
        while (x >= 0) {
    
    
            x -= i;
            res++;
            i += 2;
        }
        return res - 1;
    }
}

猜你喜欢

转载自blog.csdn.net/qq_43518425/article/details/114591114