棋盘覆盖问题

来源:互联网 发布:中石油北京网络 编辑:程序博客网 时间:2024/05/22 03:31
#include<iostream>using namespace std;int title=1;int board[100][100];void chessboard(int tr,int tc,int dr,int dc,int size){if(size==1){return;}int  t=title++;int  s=size/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);}}void main(){int size;cout<<"输入size";cin>>size;int index,indey;cout<<"输入特殊方格坐标";cin>>index>>indey;chessboard(0,0,index,indey,size);for(int i=0;i<size;i++){for(int j=0;j<size;j++){printf("%5d",board[i][j]);}cout<<endl;}}

0 0
原创粉丝点击