八皇后求助
  • 板块学术版
  • 楼主Grace25
  • 当前回复9
  • 已保存回复9
  • 发布时间2020/8/31 19:50
  • 上次更新2023/11/5 13:52:43
查看原帖
八皇后求助
359883
Grace25楼主2020/8/31 19:50
#include<iostream>
#include<algorithm>
using namespace std;
int queen[9]={0},ans;
bool check(int i){
    if((queen[i-1] == queen[i]) || (abs(queen[i]-queen[i-1] == 1))){
    	return false;
	}
	return true;
}
void print(){
	ans++;
	cout<<"Case "<<ans<<" : ";
	for(int i=1;i<=8;i++){
		cout<<queen[i]<<" ";
		queen[i]=0;
	}
	cout<<endl;
}
void dfs(int step){
	if(step>8){
		print();
		return;
	}
	for(int i=1;i<=8;i++){
		if(check(i)){
			queen[step]=i;
			dfs(step+1);
			queen[step]=0;
		}
	}
} 
int main(){
    dfs(1);
    cout<<"total : "<<ans;
    return 0; 
} 

求助。。。

2020/8/31 19:50
加载中...