题目
一个10万以内的整数,它加上100后是一个完全平方数,再加上168又是一个完全平方数,请问该数是多少?
代码
方法一:
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
double x = 0, y = 0;
for (n = -100; n <= 100000; n++)
{
x = sqrt(n + 100);
y = sqrt(n + 100 + 168);
if (( x == (int)x) && (y == (int)y))
{
printf("This integer is:%d\n", n);
}
}
return 0;
}
方法二:
#include <stdio.h>
#include <math.h>
int main(void)
{
int n;
int x = 0, y = 0;
for(n = -100; n <= 100000; n++)
{
x = sqrt(n + 100);
y = sqrt(n + 100 + 168);
if ((x*x == n + 100) && (y*y == n + 100 + 168))
{
printf("This integer is:%d\n", n);
}
}
return 0;
}
分析
方法一和方法二都差不多,都是根据判断sqrt(n+100)与sqrt(n+100+168)的值是否为整数来找出符合条件的n的值。