题解 | #求平方根# 递归二分

求平方根

http://www.nowcoder.com/practice/09fbfb16140b40499951f55113f2166c

发现没有递归方式写的,提供一个。

import java.util.*;


public class Solution {
    /**
     * 
     * @param x int整型 
     * @return int整型
     */
    public int sqrt (int x) {
        if(x==1) return x;
        return sqrtSub(x,1,x/2);
    }
    
    public int sqrtSub(int x, int min, int high){
        if(min>high) return high;
        int mid = min+(high-min+1)/2;
        int s = x/mid;
        if(mid > s){
            return sqrtSub(x,min,mid-1);
        }else if(mid < s){
            return sqrtSub(x,mid+1,high);
        }else{
            return mid;
        }
    }
}

全部评论

相关推荐

愤怒的潜伏者在开会:你不攻击他,我可攻击你了
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务