一二之殇...二九之主 • 1年前
using namespace std; int n; int sum = 0; int x[20]; bool jd(int k); void bT(int t); int tQ(int n);
int main() {
int ans;
cin >> n;
ans = tQ(n);
if (ans == 0) {
cout << "no solute!";
}
return 0;
}
int tQ(int n) {
int x[20];
for (int i = 0; i <= n; i++) {
x[i] = 0;
}
bT(1);
return sum;
}
void bT(int t) {
if (t > n) {
sum++;
for (int i = 1; i <= n; i++) {
cout << " ";
cout << x[i];
}
printf("\n");
} else {
for (int j = 1; j <= n; j++) {
x[t] = j;
if (jd(t)) {
bT(t + 1);
}
}
}
}
bool jd(int k) {
for (int i = 1; i < k; i++) {
if (abs(k - i) == abs(x[k] - x[i]) || x[i] == x[k]) {
return false;
}
}
return true;
}
评论:
请先登录,才能进行评论