首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一个小程序不知道哪错了 请帮忙看以下,该怎么解决

2012-02-10 
一个小程序不知道哪错了请帮忙看以下题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平

一个小程序不知道哪错了 请帮忙看以下
题目:一个整数,它加上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();
}

热点排行