📄 棋盘覆盖.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 + -