将 1,2,…,9 共 9 个数分成 3组,分别组成 3 个三位数,且使这 3 个三位数构成1:2:3 的比例,试求出所有满足条件的 3 个三位数。
输入格式
无
输出格式
若干行,每行 33 个数字。按照每行第 11 个数字升序排列。
输入
无
输出
192 384 576
* * *
...
* * *
(剩余部分不予展示)
#include <bits/stdc++.h>
using namespace std;
void dfs (int step);
int a[11], book[11], n = 9;
bool flag = true;
void dfs(int step){
int i;
if(step == n + 1){
if((a[1] * 100 + a[2] * 10 + a[3]) * 2 == (a[4] * 100 + a[5] * 10 + a[6]) && ((a[1] * 100 + a[2] * 10 + a[3]) * 3 == (a[7] * 100 + a[8] * 10 + a[9]))){
cout << a[1] << a[2] << a[3] << " " << a[4] << a[5] << a[6] << " " << a[7] << a[8] << a[9] << endl;
flag = false;
}
return;
}
for(i = 1; i <= n; i ++){
if(book[i] == 0){
a[step] = i;
book[i] = 1;
dfs(step + 1);
book[i] = 0;
}
}
return;
}
int main()
{
dfs(1);
return 0;
}