-
问题描述:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少(*java方法)
-
题目分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足条件,即是结果。
-
package questions; public class CompSqrt { public static void main(String[] args) { int n=0; for (int i = 0; i <= 100000; i++) //先确定一个在100000内的大概范围 { if (isCompSqrt(i + 100) && isCompSqrt(i + 168)) { n = i; break; } } System.out.print("所求的数是:" + n); } private static boolean isCompSqrt(int p) //判断完全平方数的方法 { boolean flag = false; double fsqrt = Math.sqrt(p); // 先将数开平方 int q = (int) fsqrt; // 转换成整数,另q为开平方且转换为整数的结果。 if (p == Math.pow(q, 2)) // pow(x,y) 就是计算 x 的 y 次幂。把开平方后的整数再平方,看看他和开平方之前的数是不是相等 。 { flag = true; } return flag; } }
所求的数是:156
有关非完全平方数的判断(Java)
最新推荐文章于 2024-10-11 16:43:21 发布