题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
分析:先定义一个未知数n,所以n+100=x*x, n+100+168=y*y;得出结果y*y-x*x=168,所以(x-y)(x+y)=168计算得出 n的下限为-100;上限为27956
知识点:sqrt(X)方法,用于对一个未知数开平方
注意:X必须是大于等于0的数,否则就会返回NaN
实现代码:
#include <iostream>//头文件引用
using namespace std;//命名空间
int main()//主函数
{
//题目:一个整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
int x, y;//定义两个开平方的结果
cout << "符合的数有:" << endl;
for (int i = -100; i < 27956; i++)//设定循环
{
x = sqrt(i + 100);//利用sqrt()方法开平方i+00
y = sqrt(i + 100 + 168);//利用sqrt()方法开平方i+00+168
if (x*x == i + 100 && y*y == i + 100 + 168)//x平方是i+100,y平方是i+100+168
{
cout << i << endl;//输出i
}
}
}
运行结果: