从网上找到一份编程练习题,我决定将里面的题目全都做一遍。 |
/*
题目:一个整数,它加上100后是一个完全平方数,加上168又是一个完全平方数,请问该数是多少? ?
*/
/*
分析:题目没有给定整数的范围,暂定范围为10000以内。
判断完全平方数,需要开方,用到Math.sqrt()方法。static double sqrt(double a) 返回正确舍入的 double 值的正平方根。
--> sqrt()方法返回double,强转为int。
判断该数开方取整的数再平方后和该数是否相等即可。
*/
class WanQuanPingFangShu {
public static void main(String[] args) {
System.out.println("10000以内的满足条件的数有:");
for (int i=1; i<=10000; i++){
int pingFang_1=(int)(Math.sqrt(i+100));
int pingFang_2=(int)(Math.sqrt(i+168));
if(pingFang_1*pingFang_1==(i+100) && pingFang_2*pingFang_2==(i+168)){
System.out.println(i);
}
}
}
}
/*
输出结果
156
*/
/*-----------------------------------------------------------------*/
//在网上看到另外一种方式进行判断,感觉挺简洁的,学习下。
Math.floor(Math.sqrt(k+100))==Math.sqrt(k+100) && Math.floor(Math.sqrt(k+168))==Math.sqrt(k+168)
|
|