第六届蓝桥杯C/C++A组第一题解答

时间:2022-09-10 14:46:47

题目:

方程整数解
方程: a^2 + b^2 + c^2 = 1000
(或参见【图1.jpg】)(图略)
这个方程有整数解吗?有:a,b,c=6,8,30 就是一组解。
你能算出另一组合适的解吗?
请填写该解中最小的数字。
注意:你提交的应该是一个整数,不要填写任何多余的内容或说明性文字。


思路:

很简单,就是a,b,c暴力循环,一个个试,但是注意是整数,包括负数,答案不唯一。


代码:

<span style="font-size:18px;">#include<iostream>
using namespace std;
int main()
{
	int a=0,b=0,c=0;
	for(a=-99;a<=99;a++)//注意负数也是可以的
	{
		for(b=-99;b<=99;b++)
		{
			for(c=-99;c<=99;c++)
			{
				if(a*a+b*b+c*c==1000&&a<=b&&b<=c)//限制输出条件a小于等于b小于等于c,防止出现重复。
				{
					cout<<a<<' '<<b<<' '<<c<<endl;
				}
			}
		}
	}
	return 0;
}</span>


运行结果:

第六届蓝桥杯C/C++A组第一题解答

填空题,不用写恒严格的代码,最后结果选一组解中的最小值填进去即可。


心路历程:

水题,但是当时这道题有点问题,当时没有考虑为负的情况,虽说答案是对的(任选一组解中最小即可),但是还是要细心,注意整数是包括负整数的。(第一次感受到蓝桥是如何扣细节的)。