日期:2014-05-20  浏览次数:20645 次

完全平方数问题
public class TestSqure {

/**
* @param args
*/
public static void main(String[] args) {
for(int i=0;i<100000;i++) {
if(Math.sqrt(i + 100) % 1 == 0) {
if(Math.sqrt(i + 268) % 1 == 0) {
System.out.println(i + "加100是一个完全平方数,再加上168又是一个完全平方数");
}
}
}

}

}
为什么这个数开平方除以1的余数等于0就是完全平方数呢

------解决方案--------------------
Math.sqrt()结果是double类型,一个不是整数的double 如1.4与1取余数结果是0.4;
而一个整数与1取余结果肯定是0;
Math.sqrt(i + 100) % 1 == 0就是判断 Math.sqrt(i + 100) 是否是整数
另(一个数如果是另一个整数的完全平方,那么我们就称这个数为完全平方数,也叫做平方数)