棋盘覆盖.cpp

来自「棋盘覆盖,不错的」· C++ 代码 · 共 53 行

CPP
53
字号
#include<iostream.h>
#include"iomanip.h"
int tile=1;
const int size=16;
int board[size][size];
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]=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 OutputBoard(int size)
{
   for (int i = 0; i < size; i++) 
   {
         for (int j = 0; j < size; j++)
         cout << setw (5) << board[i][j];
         cout << endl;
   }
}

void main(){
	chessboard(0,0,7,9,size);
    OutputBoard(size);
}

⌨️ 快捷键说明

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