⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cpp2.cpp

📁 设B是一个n×n棋盘
💻 CPP
字号:
#include "iostream.h"
#include "stdio.h"
void cover (int **a,int tr,int tc,int dr,int dc,int k,int n) 
{   int i,j,h,l;
	if(n>2)
	{   for(i=(dr+tr-1)/2;i<=(dr+tr-1)/2+1;i++)
		{   for(j=(dc+tc-1)/2;j<=(dc+tc-1)/2+1;j++)
			{   if(i==(dr+tr-1)/2&&j==(dc+tc-1)/2) {h=-1;l=-1;}
				else if(i==(dr+tr-1)/2+1&&j==(dc+tc-1)/2) {h=1;l=-1;}
				else if(i==(dr+tr-1)/2&&j==(dc+tc-1)/2+1) {h=-1;l=1;}
				else if(i==(dr+tr-1)/2+1&&j==(dc+tc-1)/2+1) {h=1;l=1;}
				if(a[i][j]==0) a[i+h*(n/4-1)][j+l*(n/4-1)]=k;
				else if(a[i][j]!=0) a[i+h*(n/4)][j+l*(n/4)]=k;
				a[i-h+h*(n/4)][j+l*(n/4)]=k;
				a[i+h*(n/4)][j-l+l*(n/4)]=k;
				k++;
			}
		}
		cover (a,tr,tc,(dr+tr-1)/2,(dc+tc-1)/2,k,n/2);
		cover (a,tr,(dc+tc-1)/2+1,(dr+tr-1)/2,dc,k,n/2);
		cover (a,(dr+tr-1)/2+1,tc,dr,(dc+tc-1)/2,k,n/2);
		cover (a,(dr+tr-1)/2+1,(dc+tc-1)/2+1,dr,dc,k,n/2);
	}
}
void main()
{
	int n;
	do
	{   cin>>n;
		if(n!=0)
		{   int **a;
			a=new int*[n];
			for(int r=1;r<=n;r++)
				a[r]=new int[n];
			for(int i=1;i<=n;i++)
				for(int j=1;j<=n;j++)
					a[i][j]=0;
			a[n/2][n/2+1]=1;
			a[n/2+1][n/2]=1;
			a[n/2+1][n/2+1]=1;
			cover (a,1,1,n,n,2,n);
			for(int q=1;q<=n;q++)
				for(int j=1;j<=n;j++)
				{   printf("%3d",a[q][j]);
					if(j==n)  cout<<endl;
				}
		}
  }while(n!=0);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -