//最小数和最大数向中间遍历,最大数为number开平方取整
//如果两数平方之和等于number,返回true
//如果两数平方之和小于number,最小数加一
//如果两数平方之和大于number,最大数减一
//循环结束找不到返回false
public class JudgeSquareSum {
public static boolean judgeSquareSum(int number){
int i=0;//最小数
int j=(int)Math.sqrt(number);//最大数
while(i<=j){
int current=i*i+j*j;
if(current==number){
System.out.println(i+" "+j);
return true;
}
else if(current<number){
i++;
}
else{
j--;
}
}
return false;
}
public static void main(String[] args){
System.out.println(judgeSquareSum(20));//输出结果为2 4 true
}
}