蒟蒻求助大佬,代码如下:
#include<bits/stdc++.h>
using namespace std;
int a[115], c[5][128] = {0}, sum=0, n;
void wp(int l) {
if (l > n) {
sum++;
if (sum > 3) {
return;
} else {
for (int i = 1; i <= n; i++) {
cout << a[i]<<" ";
}
cout<<endl;
return;
}
}
for (int i = 1; i <= n; i++) {
if ((!c[0][i]) && (!c[i][l + i] )&& (!c[2][l - i + n])) {
a[l] = i;
c[0][i] = 1;
c[1][l + i] = 1;
c[2][l - i + n] = 1;
wp(l + 1);
c[0][i] = 0;
c[1][l + i] = 0;
c[2][l - i + n] = 0;
}
}
}
int main() {
cin >> n;
wp(1);
cout << sum;
return 0;
}
![结果]()