x的平方根(二分查找实现)

设计函数int sqrt(int x),计算 xx 的平方根。

import Java.util.Scanner;

public class MySqrt 
   public static int sqrt(int n){
	   int left=1,right=(n+1)/2;
	
	   while(left<right){
		   int mid=(left+right)/2;
		  int result= mid*mid;
	//	int result2=(mid+1)*(mid+1);
		  if(result==n){
			  return mid;
		  }
		  else if(result>n){
			  right=mid-1;
		  }
		  else if(result<n){
			 left=mid+1;
		  }
	   }
	   int temp=right*right;
	   if(temp>n)
		   return right-1;
	   else return right;
	   
   }
   public static void main(String[] args) {
	//System.out.println(sqrt(100));;
	   Scanner sc=new Scanner(System.in);
	   String s;
	   while((s=sc.nextLine())!=null){
		     int value=Integer.parseInt(s);
		     System.out.println(sqrt(value));
	   }
	   
	   
	   
	    
	   
}
	
}

输入格式

输入一个 整数 xx,输出它的平方根。直到碰到文件结束符(EOF)为止。

输出格式

对于每组输入,输出一行一个整数,表示输入整数的平方根。

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

微信扫一扫

微信扫一扫

微信扫一扫,分享到朋友圈

x的平方根(二分查找实现)