满意答案
问题:一整数,它加100后是完全平方数,再加168还是完全平方数,求该整数
解题思路:设该数为x,它加100后是A,再加168为B。
则因为A是完全平方数,
所以A为正数,且A=y*y,y为正整数或0。
同理,B为正数,B=z*z,z为正整数。
因为B=A+168>A,所以,我们可设z=y+n,n为正整数,n>0。
由B=A+168,有:(y+n)(y+n)=y*y+168,即:y=84/n-n/2。
又y为正整数,所以84/n-n/2≥0,则得出n≤13
所以,编程时可用的条件有:
0
y=84/n-n/2
x=y*y-100,当y为整数时,就是符合题目的y。
*/
#include
int main()
{
int n,x;
float y;
for(n=1;n<=13;n++)
{
y=84.0/n-n/2.0;
//这里用84.0和2.0,是因为整数用“/”时,结果会取整,用这种浮点型数才不会直接取整数。
if(int(y) == y)//当y是一个整数时,求出对应x,并输出。
{
x=int(y*y-100);
printf("%d\n",x);
}
}
return 0;
}
//此程序还可扩展为更一般化的算法
00分享举报