求完全平方数,不知错误在哪?
#include<stdio.h>#include<math.h>
int main()
{
long int i,x,y;
i=1;
if(i<100000)
{
x=sqrt(i+100);
y=sqrt(i+168);
if(x*x==i+100&&y*y==i+168)
{
printf("%ld\n",i);
}
else
{
i++;
}
}
}
实在不知错误在哪儿,还请大家帮忙指点指点!谢谢!!!!!!
题目是 一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果 #include<stdio.h>
#include<math.h>
int main()
{
long int i,x,y;
i=1;
while(i<100000)
{
x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100 && y*y==i+268)
printf("%ld\n",i);
i++;
}
}改成这样吧。你自己验证一下对不对,我这个算出来3个数。 #include<stdio.h>
#include<math.h>
void main()
{
int a;
double b,c;
for(a=0;a<100000;a++)
{
b=sqrt(a+100);
c=sqrt(a+268);
if((int)b==b && (int)c==c)
printf("%d ",a);
}
}
我这个代码也验证出来三个数,嘿嘿 路过,顶一下 1、main函数类型int无返回值不对。2、变量数据类型int与sqrt的double类型不对。if语句嵌套不对达不到循环。不知对你有帮助吗。:titter:
页:
[1]