读书人

【java练习13】-完全平方数

发布时间: 2012-08-27 21:21:57 作者: rapoo

【java练习题13】--完全平方数

【程序13】 ??

题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少? ??

1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后的结果满足如下条件,即是结果。

?

public static void main(String[] args) {

// TODO Auto-generated method stub

for(int i=1;i<100000;i++) ?

? ? ? ? { ?

? ? ? ? ? ? //判断开平方根出来的数小数部分是否为0, ?

? ? ? ? ? ? if(Math.sqrt((i+100))%1==0 && Math.sqrt((i+100+168))%1==0) ?

? ? ? ? ? ? { ?

? ? ? ? ? ? ? ? System.out.println(i); ?

? ? ? ? ? ? } ?

? ? ? ? } ?

}

1 楼 mfkvfn 2012-04-25 a^2=X+100
b^2=X+168

则 b^2-a^2=(X+168)-(X+100)
即 (b+a)*(b-a)=68
由于a,b都是正整数,而68只有1*68,2*34,4*17几种组合。
所以只可能有几种情况:
1 b+a=68且b-a=1
2 b+a=34且b-a=2
3 b+a=17且b-a=4

三种情况,只有第2种情况a,b的整数解a=16,b=18。
则X一定是16^2=X+100的解,X=156。

根本用不着算10万以内,而且又是平方根什么的。

读书人网 >编程

热点推荐