养眼程序
  • 板块灌水区
  • 楼主Sun13
  • 当前回复6
  • 已保存回复6
  • 发布时间2024/7/23 17:35
  • 上次更新2024/7/23 19:01:43
查看原帖
养眼程序
1027956
Sun13楼主2024/7/23 17:35

在N皇后的基础上加入了显示棋盘的代码,看着特别养眼

#include<bits/stdc++.h>
using namespace std;
int n,a[1000010]; bool b[1000010],c[2000010],d[2000010];
void out(){
	putchar('+');
	putchar('-');
	for(int i=1; i<=n<<1; i++)
		putchar('-');
	putchar('+');
	putchar('\n');
	for(int i=1; i<=n; i++){
		putchar('|');
		putchar(' ');
		for(int j=1; j<a[i]; j++)
			putchar('+'),putchar(' ');
		putchar('o');
		for(int j=1; j<=n-a[i]; j++)
			putchar(' '),putchar('+');
		putchar(' ');
		putchar('|');
		putchar('\n');
	}
	putchar('+');
	putchar('-');
	for(int i=1; i<=n<<1; i++)
		putchar('-');
	putchar('+');
	putchar('\n');
}
void dfs(int x){
	if(x>n){
		out();
		return ;
	}
	for(int i=1; i<=n; i++)
		if(b[i]==0&&c[i+x]==0&&d[i-x+500]==0){
			b[i]=1;
			c[i+x]=1;
			d[i-x+500]=1;
			a[x]=i;
			dfs(x+1);
			b[i]=0;
			c[i+x]=0;
			d[i-x+500]=0;
		}
}
int main(){
	scanf("%d",&n); 
	dfs(1);
	return 0;
}
2024/7/23 17:35
加载中...