一般是暴力求解,这个效率太低了,还是用二分法进行查找,就是确定俩个指针,一个left一个right,还有一个mid,因为其是开平方,所以其被开方数那个肯定是x,那个x>=mid*mid,才能将mid赋值给index,否则这个数的开平方的整数部分肯定没超过mid
接下来代码展示:
package com.fan.suanfati;
/**
* 通过二分法,来进行开平方找开之后的整数部分
*/
public class Test07 {
public static void main(String[] args) {
int search = Search(25);
System.out.println(search);
}
public static int Search(int x){
int index=0;
int left=0;
int right=x;
int mid;
while (left<=right){
mid=left+(right-left)/2;
if (x>=mid*mid){
index=mid;
left=mid+1;
}else{
right=mid-1;
}
}
return index;
}
}