我不知道为什么用搜索写,但看着没问题呀,就是过不了第五个点,为什么呀
#include <iostream>
using namespace std;
int a, b, c;
char d[20];
bool p[15], q[15];
bool falg;
void print() {
int h1[10], h2[10];
int f1, f2, f3;
bool flag = true;
f1 = ((int)d[1]) * 100 + ((int)d[2]) * 10 + ((int)d[3]);
f2 = (f1 / a) * b;
f3 = (f1 / a) * c;
if (f2 > 999 || f3 > 999)
flag = false;
int d1 = f1, d2 = f2, d3 = f3;
for (int i = 1; i <= 3; i++) {
q[d1 % 10] = 1;
q[d2 % 10] = 1;
q[d3 % 10] = 1;
d1 /= 10;
d2 /= 10;
d3 /= 10;
}
for (int i = 1; i <= 9; i++) {
if (q[i] == 0)
flag = false;
q[i] = 0;
}
if (flag) {
if (falg)
cout << endl;
cout << f1 << " " << f2 << " " << f3;
falg = true;
}
}
void dfs(int k) {
for (int i = 1; i <= 9; i++) {
if (!p[i]) {
p[i] = 1;
d[k] = i;
if (k == 3)
print();
else
dfs(k + 1);
p[i] = 0;
d[k] = 0;
}
}
}
int main() {
cin >> a >> b >> c;
dfs(1);
if (!falg)
cout << "No!!!";
return 0;
}