注目の上面の質問は、実現のX -java計画問題の平方根を-leetcode

問題の説明:
int型のsqrt(int型x)関数を実現します。

計算し、xが負でない整数であり、xの平方根を返します。

戻り型が整数であるため、結果の整数部は、小数部を切り捨て保持します。

例1:
入力:4
出力:2

例2:
入力:8
出力:2

説明:
平方根は、2.82842 ... 8
戻り型が整数であるため、小数部を切り捨てています。

アイデアは答えるために:
考えることができる方法は、次のとおりです。ビルトイン関数法、暴力的な解決法、および二分法

質問の意味の後:
この質問は力を見るためだけでなく、ニュートン反復法を使用して解決するために、そしてその後に補足学ぶボタンをコメント、アイデアの様々なを見つけるでしょう。

(のみ機能付)個人的な解答のJavaバージョン:
回答1:

public static int mySqrt(int x) {
    	int num=(int)Math.sqrt(x);
    	return num;
}

回答2:

class Solution {
	    public int mySqrt(int x) {
	    	int i;
	    	for(i=0;i<=x;i++){
	    		if(i*i>x||i*i<0){//防止溢出,超过整数的最大值
	    			break;
	    		}
	    	}
	    	return i-1;
	    }
}

回答3

    public static int mySqrt(int x) {
    	int max=x,min=0,mid=x;
    	
    	while(x==0||x==1){
    		return x;
    	}
    	while(max>=min){
    		
        	if(mid<=x/mid && (mid+1)>x/(mid+1)){
        		return mid;
        	}
        	
        	mid=(max+min)/2;
        	
        	if(mid>x/mid){
        		max=mid;
        	}else if(mid<=x/mid){
        		min=mid;
        	}
    	}
    	return 0;
}

答えは、あなたがより良いアイデアを持っている場合、コメントエリア助言を歓迎一緒に学習の交換を容易にし、個人的な欠点を有することができます。

ジュニアパートナーかもしれ右上チャンに報いると同様か、コメントを歓迎!
コイン収集ポイントの三重結合利息ハハ、より安定した週と同様に

おすすめ

転載: blog.csdn.net/fallwind_of_july/article/details/93771794