C语言小程序,完全平方数

来源:百度知道 编辑:UC知道 时间:2024/09/20 08:51:57
题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
1.程序分析:在10万以内判断,先将该数加上100后再开方,再将该数加上268后再开方,如果开方后
的结果满足如下条件,即是结果。请看具体分析:
2.程序源代码:
#include "math.h"
main()
{
long int i,x,y,z;
for (i=1;i<100000;i++)
{ x=sqrt(i+100);
y=sqrt(i+268);
if(x*x==i+100&&y*y==i+268)
printf("\n%ld\n",i);
}
}

分析看不懂,为什么是加268呢。为什么在10万以内判断?
for循环开始后,到输出语句上面。麻烦高手给我解释下。。
如果你说打错了,那后面程序里循环也是i+268呢。我有点迷糊。

为什么是加268呢
它加上100后是一个完全平方数,再加上168又是一个完全平方数
设这个数为X,则第一个数为100+X,第二个数为再加上168又是一个完全平方数:100+X+168,即268+X;

为什么在10万以内判断?
题目是这么出的!如果老师问4+5=几你难道要问老师为什么不出5+5=几?

那后面程序里循环也是i+268呢
注意:循环里面i=i+1;而i+268是在if语句里面别混在一起!

再加168 268拉
x+100=a^2
x+268=b^2
x+100<x+268 b^2>a^2
假设 a b想临 有最小差 2a+1
2a+1<=168
a<=167/2
x+100<=(167/2)^2

10万当然是题目给的限制啊,哪有为什么
268可能是打错了吧。

楼上说的不错,10万是题目给的限制,找出10万以内满足条件的数啊,268就简单了,你先加100再加上168不就是加268了么.....