版权声明:本文为博主原创,未经博主允许不得转载。转载请附上原文链接。 https://blog.csdn.net/qq_38341682/article/details/88581930
题目描述
设a、b、c均是0到9之间的数字,abc、bcc是两个三位数,且有:abc+bcc=532。求满足条件的所有a、b、c的值。
输入描述
题目没有任何输入。
输出描述
请输出所有满足题目条件的a、b、c的值。
a、b、c之间用空格隔开。
每个输出占一行。
分析
水题,直接遍历暴力求解即可,三层for循环。不过也有一些优化的点,可能优化效果对于这道题不是很明显,但是当数据量很大时,这些对于数字的优化方法可能就很有效。
首先题目说是两个三位数,于是a和b均不为0。其次,两个数的个位数是相同的,且和的个位数为2,也就是说c只能是1或者6。这样经过优化,实际上就相当于只有两层循环,因为c只能取两个数。
AC代码如下:
#include<iostream>
using namespace std;
int main(void)
{
int a, b, c;
int num1, num2;
for(int i = 1; i < 10; ++i)
{
for(int j = 1; j < 10; ++j)
{
for(int k = 1; k < 7; k = k + 5)//只能取两个数
{
a = i;
b = j;
c = k;
num1 = 100*a + 10*b + c;
num2 = 100*b + 11*c;
if(num1 + num2 == 532)
{
cout << a << " " << b << " " << c << endl;
}
}
}
}
return 0;
}