一个小程序不知道哪错了 请帮忙看以下
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
main()
{
long int i,n=0;
for(i=1;i <=100000;i++)
if((sqrt(i+100)*sqrt(i+100)==i+100)&&(sqrt(i+268)*sqrt(i+268)==i+268))
printf( "%ld\t ",i);
getch();
}
我用的是win-tc 谢谢了
[解决办法]
1).题目给的第个条件是168,程序中你写268
2)因为sqrt函数把int转成double来算,所以给出了很多不正确的结果.
main()
{
long int i,n=0;
for(i=1;i <=100000;i++)
//强制转换一下,得出这个数是156,156+100=16^2 156+168=18^2
if(((long int)sqrt(i+100)*(long int)sqrt(i+100)==i+100)&&((long int)sqrt(i+168)*(long int)sqrt(i+168)==i+168))
printf( "%ld\t ",i);
getch();
}