棋盘覆盖
来源:互联网 发布:点云数据处理软件推荐 编辑:程序博客网 时间:2024/04/28 17:57
#include <iostream.h>
#define N 100
int board[N][N];
int t;
void chessboard(int tr,int tc,int dr,int dc,int size)
{
int m,s;
if(size==1) return;
m=++t;
s=size/2;
if(dr<tr+s&&dc<tc+s)
chessboard(tr,tc,dr,dc,s);
else
{
board[tr+s-1][tc+s-1]=m;
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]=m;
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]=m;
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]=m;
chessboard(tr+s,tc+s,tr+s,tc+s,s);
}
}
void print(int n)
{
int i,j;
for (i=0;i<n;i++)
{
for (j=0;j<n;j++)
cout<<board[i][j]<<" ";
cout<<endl;
}
}
void main()
{
int tr,tc,dr,dc,size;
tr=0;
tc=0;
cout<<"请输入棋盘的大小:";
cin>>size;
cout<<"请输入特殊方块的行号:";
cin>>dr;
cout<<"请输入特殊方块的列号:";
cin>>dc;
board[dr-1][dc-1]=0;
chessboard(tr,tc,dr-1,dc-1,size);
print(size);
}
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- 棋盘覆盖
- OwnYourInfo: 网页版和手机版个人文档储物柜
- Android中资源文件夹res/raw和assets的使用
- mysql函数--数学函数
- 如何让虚拟目录里面的webconfig不继承网站的设置
- ubuntu设置软件的更新源
- 棋盘覆盖
- 利用NSBundle获取文件
- java实现文件单词频率统计
- 数据结构
- 策略模式
- C++ List(#include<list>)
- http://blog.csdn.net/v_july_v/article/details/6015165
- Android 解析xml 之DOM
- HCI History-Software in HCI History