平成破廉耻学园:一个c的题大家指导

来源:百度文库 编辑:查人人中国名人网 时间:2024/05/03 23:05:09
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
帮我看看下面的解答正确吗?
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
printf("\n%ld\n",i);
}
}

打错了吧?~算法应该没错.

到底是168还是268?程序是268。

{ x=sqrt(i+100); /*x为加上100后开方后的结果*/
y=sqrt(i+268); /*y为再加上168后开方后的结果*/
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
似乎两个语句重复了吧!

楼上的,不重复,这个有必要的.都是int,好象sqrt()出来的不是int,所以需要再检验一下

算法应该没什么问题,最好在if语句中加一个break在得到结果后退出循环。
if(x*x==i+100&&y*y==i+268)/*如果一个数的平方根的平方等于该数,这说明此数是完全平方数*/
{
printf("\n%ld\n",i);
break;
}