1.题目描述
链接
2.个别参数解释
例如dig[a] = 1 时,dig[b] dig[c] dig[d] dig[e]就不能取1了
#include<bits/stdc++.h>
using namespace std;
void f() {
bool dig[10];
for(int a = 1; a <= 9; a++) {
dig[a] = 1;
for(int b = 0; b <= 9; b++) {
if(!dig[b]) {
dig[b] = 1;
for(int c = 0; c <= 9; c++) {
if(!dig[c]) {
dig[c] = 1;
for(int d = 0; d <= 9; d++) {
if(!dig[d]) {
dig[d] = 1;
for(int e = 0; e <= 9; e++) {
if(!dig[e]) {
dig[e] = 1;
int m = a * 1000 + b * 100 + c * 10 + d;
int n = a * 1000 + b * 100 + e * 10 + d;
int s = e * 10000 + d * 1000 + c * 100 + a * 10 + d;
if(m + n == s) {
cout << "兵:" << a << endl;
cout << "炮:" << b << endl;
cout << "马:" << c << endl;
cout << "卒:" << d << endl;
cout << "车:" << e << endl;
}
dig[e] = 0;
}
dig[d] = 0;
}
dig[c] = 0;
}
dig[b] = 0;
}
dig[a] = 0;
}
}
}
}
}
}
int main() {
f();
return 0;
}