题目:一个整数加上100后是一个完全平方数,再加上168后又是一个完全平方数,求这个数。
解题关键:弄清数与数之间的关系。
设该数为x,x+100 = n*n,x+100+168 = m*m;
m*m-n*n = 168
i = m+n, j = m-n
m = (i+j)/2,n = (i-j)/2
分析可知:i,j都为大于二的偶数。
i > j,且 j >=2, 1=< i <=168/2+1
代码如下:
#define _CRT_SECURE_NO_WARNINGS
{
int x,m,n,i,j; // i = m+n > j = m-n
for(i = 1;i <= 168/2+1;i++)
{
j = (float)168/i;
if(j % 2 == 0 && i*j == 168 && i>j) //剔除掉 i,j中存在奇数的情况
{
m = (i+j)/2;
n = (i-j)/2;
x = n*n-100;
if(x > 0)
{
printf("%d %d %d\n",m,n,x);
}
}
}
system("pause");
return 0;
}
代码如上。
完。
谢谢查看。
欢迎交流学习!
欢迎批评改错!