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

📄 棋盘覆盖.cpp

📁 算法设计与分析的经典程序
💻 CPP
字号:
#include<stdio.h>
#define max 10000
int Board[max][max];
int tile=0;
void ChessBoard(int tr,int tc,int dr,int dc,int size)
{if (size==1) return;
 int t=tile++, s=size/2; 
 if (dr<tr+s && dc<tc+s) 
 ChessBoard(tr,tc,dr,dc,s);
 else {	 Board[tr+s-1][tc+s-1];
	 ChessBoard(tr,tc,tr+s-1,tc+s-1,s);
 }
if (dr<tr+s && dc>=tc+s)
ChessBoard(tr,tc+s,dr,dc,s);
else{Board[tr+s-1][tc+s]=t;
  ChessBoard(tr,tc+s,tr+s-1,tc+s,s);
}
if (dr>=tr+s && dc<tc+s)
ChessBoard(tr,tc+s,dr,dc,s);
else{Board[tr+s][tc+s-1]=t;
  ChessBoard(tr+s,tc,tr+s,tc+s-1,s);
}
if (dr>=tr+s && dc>=tc+s)
ChessBoard(tr+s,tc+s,dr,dc,s);
else{Board[tr+s][tc+s]=t;
ChessBoard(tr+s,tc+s,tr+s,tc+s,s);
}}
main()
{int n,i,j,dr,dc;
printf("Please input the dimension number,\nIt must be the number 2's inex\nn=");
scanf("%d",&n);
printf("Please input the number of row and column of special grid dr=&dc= ");
scanf("%d%d",dr,dr);
for (i=0;i<n;i++)
	 for (j=0;j<n;j++) Board[i][j]=0;
ChessBoard(0,0,dr,dc,n);
for (i=0;i<n;i++)
{   printf("\n");
	for (j=0;j<n;j++)
	 printf("%10d",Board[i][j]);}
}

⌨️ 快捷键说明

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