输入整数,求根号n,返回整型

 public static int sqrt(int a) {
        if (a < 0 || a == 0 || a == 1) return a;
        int startNum = 0;
        int endNum = a;
        for (; startNum + 1 < endNum; ) {//保证整数情况下,不相等
            int mid = (startNum + endNum) >> 1;
            if ((long) mid * mid < a) { 转换成long是防止,整型相乘后int溢出
                startNum = mid;
            } else if ((long) mid * mid > a) {
                endNum = mid;
            } else {
                return mid;
            }
        }
        return startNum;
    }

 

posted @ 2020-12-23 13:48  soft.push("zzq")  Views(315)  Comments(0Edit  收藏  举报