题目描述
将 1,2,…,9 共 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A:B:C,试求出所有满足条件的三个三位数,若无解,输出 No!!!
。
//感谢黄小U饮品完善题意
输入格式
三个数,A,B,C。
输出格式
若干行,每行 3 个数字。按照每行第一个数字升序排列。
分析:
把符合ABC比例的数字找出,判断是否满足每个数字不重复,如果不重复就输出。没有满足的数字,出去No!!!
代码:
#include<bits/stdc++.h>
using namespace std;
int main() {
int a, b, c;
int d[10];
int f,g,n=0;
int i, j, z;
cin >> a >> b >> c;
for (int e = 1; e <= 1000/c; e++) {
g = 0;
i = e * a;//先找出满足比例的三个数字
j = e * b;
z = e * c;
d[1] = i / 100;//将三个数的个位十位百位放到数组中进行排序
d[2] = i % 100 / 10;
d[3] = i % 10;
d[4] = j / 100;
d[5] = j % 100 / 10;
d[6] = j % 10;
d[7] = z / 100;
d[8] = z % 100 / 10;
d[9] = z % 10;
sort(d + 1, d + 10);
for (int m = 1; m < 9; m++) {//判断是否有重复的,并且不含0
f = m + 1;
if (d[m] == d[f]||d[m]==0||d[f]==0) {
g = 1;
}
}
if (g == 0) {
cout << i << " " << j << " " << z << endl;
n = 1;
}
}
if (n == 0)
cout << "No!!!";
return 0;
}