题目描述
将 1,2,…,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!
。
输入格式
三个数,A,B,C。
输出格式
若干行,每行 3 个数字。按照每行第一个数字升序排列。
输入输出样例
输入 #1
1 2 3
输出 #1
192 384 576 219 438 657 273 546 819 327 654 981
说明/提示
保证 A<B<C。
#include<iostream>
using namespace std;int a, b, c;
int n1, n2, n3, arr[10], flag, cnt;int main()
{cin>>a>>b>>c;for(int num=1; num<=1000/c; num++) //num是“单位数” { n1 = num * a;n2 = num * b;n3 = num * c;//统计1-9每个数字出现的次数 for(int i=1; i<=3; ++i){arr[n1%10]++;n1 = n1 / 10;}for(int i=1; i<=3; ++i){arr[n2%10]++;n2 = n2 / 10;}for(int i=1; i<=3; ++i){arr[n3%10]++;n3 = n3 / 10;}for(int i=1; i<=9; ++i){if(arr[i] != 1) //如果有数字不是只出现一次 {flag = 1;break;}}if(!flag){cout<<num*a<<" "<<num*b<<" "<<num*c<<endl;cnt++;}else flag = 0;for(int i=1; i<=9; ++i) //每找完一组数就清零 {arr[i] = 0; } } if(!cnt) cout<<"No!!!";return 0;
}