c语言实现棋盘覆盖问题.docx

上传人:牧羊曲112 文档编号:3155279 上传时间:2023-03-11 格式:DOCX 页数:3 大小:36.94KB
返回 下载 相关 举报
c语言实现棋盘覆盖问题.docx_第1页
第1页 / 共3页
c语言实现棋盘覆盖问题.docx_第2页
第2页 / 共3页
c语言实现棋盘覆盖问题.docx_第3页
第3页 / 共3页
亲,该文档总共3页,全部预览完了,如果喜欢就下载吧!
资源描述

《c语言实现棋盘覆盖问题.docx》由会员分享,可在线阅读,更多相关《c语言实现棋盘覆盖问题.docx(3页珍藏版)》请在三一办公上搜索。

1、c语言实现棋盘覆盖问题棋盘覆盖问题 问题描述:在一个2k2k 个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。 代码:#include int tile=0;/整型变量,记录L型骨牌的数量 int Matrix100100;/定义数据结构 void ChessBoard(int tr,int tc,int dr,int dc,int size) /tr和tc分别是棋盘左上角方格的行号、列号;dr和dc分别是特殊方格的行号、

2、列号 if(size=1) return; int t=tile+;/L型骨牌号,初值为0 int s=size/2;/分割棋盘 if(drtr+s&dctc+s)/用L型骨牌号覆盖左上角子棋盘 ChessBoard(tr,tc,dr,dc,s);/ 特殊方格在此棋盘中 else /特殊方格不在此棋盘中用 ,t号L型骨牌覆盖右下角 Matrixtr+s-1tc+s-1=t; / 覆盖本子棋盘中的其余方格 ChessBoard(tr,tc,tr+s-1,tc+s-1,s); if(dr=tc+s)/用L型骨牌号覆盖右上角子棋盘 ChessBoard(tr,tc,dr,dc,s);/ 特殊方格在此

3、棋盘中 else /特殊方格不在此棋盘中用 ,t号L型骨牌覆盖左下角 Matrixtr+s-1tc+s=t;/ 覆盖本子棋盘中的其余方格 ChessBoard(tr,tc+s,tr+s-1,tc+s,s); if(dr=tr+s&dc=tr+s&dc=tc+s)/用L型骨牌号覆盖右上角子棋盘 ChessBoard(tr+s,tc+s,dr,dc,s);/ 特殊方格在此棋盘中 else /特殊方格不在此棋盘中用 ,t号L型骨牌覆盖左上角 Matrixtr+stc+s=t;/ 覆盖本子棋盘中的其余方格 ChessBoard(tr+s,tc+s,tr+s,tc+s,s); int main int

4、size,r,c,row,col; /memset(Matrix,0,sizeof(Matrix); for(int i=0;i=100;i+)/初始化 为零 for(int j=0;j=100;j+) Matrixij=0; scanf(%d,&size);/输入棋盘大小 scanf(%d%d,&row,&col);/输入特殊方格位置 ChessBoard(0,0,row,col,size); for (r = 0; r size; r+)/输出棋盘覆盖结果 for (c = 0; c size; c+) printf(%2d ,Matrixrc); printf(n); return 0; 输出结果:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号