📄 c-nqueens.cpp
字号:
#include "stdio.h"
int X[128];
int ABS(int r){
if(r>=0) return r;
else return(-r);
}
bool place(int k){
int i;
i=1;
while(i<k){
if(X[i]==X[k]||ABS(X[i]-X[k])==ABS(i-k))
return(false);
i=i+1;
}
return(true);
}
int NQueens(int n){
int k,count=0;
X[1]=0;
k=1;
while(k>0){
X[k]=X[k]+1;
while(X[k]<=n && !place(k)){
X[k]=X[k]+1;
}
if(X[k]<=n){
if(k==n){
printf("print X%d:\n",++count);
for(int m=1;m<=k;m++){
for(int b=1;b<=k;b++){
if(b==X[m]) printf(" Q");
else printf(" *");
}
printf("\n");
}
printf("\n");
// if(count==k) return 1;
}
else{
k=k+1;
X[k]=0;
}
}
else k=k-1;
}
return 0;
}
void main(){
int a;
printf("please input a integer data:");
scanf("%d",&a);
NQueens(a);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -