蓝桥杯历届-九数分三组
九数分三组
1~9的数字可以组成3个3位数,设为:A,B,C, 现在要求满足如下关系:
B = 2 * A
C = 3 * A
请你写出A的所有可能答案,数字间用空格分开,数字按升序排列。
注意:只提交A的值,严格按照格式要求输出。
dfs 思路
#include<cstdio>
#include<iostream>
#include<algorithm>
using namespace std;
int a[9], book[9];
bool getS(int *a) {
int A = a[0]*100+a[1]*10+a[2];
int B = a[3]*100+a[4]*10+a[5];
int C = a[6]*100+a[7]*10+a[8];
if (B == 2*A && C == 3*A) {
cout << A << endl;
return true;
}
return false;
}
void dfs(int step) {
if (step == 9) {
getS(a);
return;
}
for (int i = 0; i < 9; i++) {
if (book[i] == 0) {
book[i] = 1;
a[step] = i+1;
dfs(step+1);
book[i] = 0;
}
}
}
int main() {
dfs(0);
return 0;
}
答案->192 219 273 327