【经典问题】按条件求10万以内的某个数


题目

一个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的值。

运行结果



文章作者: 杂烩君
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 杂烩君 !
  目录