平方根:Square Root
题目有一个整数,它加上 100 后是一个 完全平方数 ,再加上 168 又是一个 完全平方数 ,请问该数是多少?
程序分析首先确定这个数的限定条件,然后循环遍历判断即可。
思路用数学的思路来看,可列式:
- a² = y + 100
- b² = y + 100 + 168
因为 a,b 均为整数,所以 y + 100 的平方根为整数,y + 100 + 168 的平方根也为整数。
由于完全平方数 >= 0,所以 y + 100 >= 0,即 y >= -100。
这里为了减轻计算的压力,将上限限定为 100000 即可。
Java 中 Math 包为我们提供了 sqrt() 方法来计算平方根,利用 for 循环遍历 -100 到 100000 之间的整数,然后逐一判断即可。
代码示例public class Q13_SquareRootAndCalculation {
public static void main(String[] args) {
for (int i=-100;i<=100000;i++){
if (Math.sqrt(i+100)%1==0 && Math.sqrt(i+100+168)%1==0){
System.out.print(i+"t");
}
}
}
}
输出结果
-99 21 261 1581
- Day13 打卡成功!



