n皇后问题,递归算法。
答案:1 悬赏:40
解决时间 2021-01-14 07:55
- 提问者网友:ミ烙印ゝ
- 2021-01-13 12:13
n皇后问题,递归算法。
最佳答案
- 二级知识专家网友:一把行者刀
- 2021-01-13 13:49
c:
#include
#include
int result=0;
void queen(int *chess,int len,int n){
if(n==len){
result++;
}else{
int flag=0;
for(int i=0;i flag=1;
for(int j=0;j if(abs(n-j)==abs(i-chess[j]) || chess[j]==i){
flag=0;
break;
}
}
if(!flag)
continue;
chess[n]=i;
queen(chess,len,n+1);
chess[n]=0;
}
}
}
int main(void){
int n;
int *chess;
scanf("%d",&n);
chess=(int*)malloc(sizeof(int)*n);
queen(chess,n,0);
printf("result = %d
",result);
return 0;
}
#include
#include
int result=0;
void queen(int *chess,int len,int n){
if(n==len){
result++;
}else{
int flag=0;
for(int i=0;i
for(int j=0;j
flag=0;
break;
}
}
if(!flag)
continue;
chess[n]=i;
queen(chess,len,n+1);
chess[n]=0;
}
}
}
int main(void){
int n;
int *chess;
scanf("%d",&n);
chess=(int*)malloc(sizeof(int)*n);
queen(chess,n,0);
printf("result = %d
",result);
return 0;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息!
大家都在看
推荐信息