#include<iostream>
using namespace std;
int tile=0;
int board[4][4];
void chessBoard(int tr,int tc,int dr,int dc,int siz)
{
if(siz==1) return;
int t=++tile,s=siz/2;
if(dr<tr+s&&dc<tc+s) chessBoard(tr,tc,dr,dc,s);
else
{
board[tr+s-1][tc+s-1]=t;
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+s,tc,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);
}
}
int main()
{
int i,j;
int a,b;
cout<<"请输入特殊方格横坐标:";
cin>>a;
cout<<"请输入特殊方格纵坐标:";
cin>>b;
board[a][b]=0;
chessBoard(0,0,a,b,4);
cout<<"覆盖结果:"<<endl;
for(i=0;i<4;i++)
{
for(j=0;j<4;j++)
{
cout<<board[i][j]<<" ";
}
cout<<endl;
}
return 0;
}
仅作留档。