欢迎来到天天文库
浏览记录
ID:55550267
大小:42.50 KB
页数:2页
时间:2020-05-16
《c语言实现棋盘覆盖问题.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、棋盘覆盖问题问题描述:在一个2k×2k个方格组成的棋盘中,恰有一个方格与其他方格不同,称该方格为一特殊方格,且称该棋盘为一特殊棋盘。在棋盘覆盖问题中,要用图示的4种不同形态的L型骨牌覆盖给定的特殊棋盘上除特殊方格以外的所有方格,且任何2个L型骨牌不得重叠覆盖。代码:#includeinttile=0;//整型变量,记录L型骨牌的数量intMatrix[100][100];//定义数据结构voidChessBoard(inttr,inttc,intdr,intdc,intsize){//tr和tc分别是棋盘左上角
2、方格的行号、列号;dr和dc分别是特殊方格的行号、列号if(size==1)return;intt=tile++;//L型骨牌号,初值为0ints=size/2;//分割棋盘if(dr
3、dr
4、,t号L型骨牌覆盖右上角Matrix[tr+s][tc+s-1]=t;//覆盖本子棋盘中的其余方格ChessBoard(tr+s,tc,tr+s,tc+s-1,s);}if(dr>=tr+s&&dc>=tc+s)//用L型骨牌号覆盖右上角子棋盘ChessBoard(tr+s,tc+s,dr,dc,s);//特殊方格在此棋盘中else{//特殊方格不在此棋盘中用,t号L型骨牌覆盖左上角Matrix[tr+s][tc+s]=t;//覆盖本子棋盘中的其余方格ChessBoard(tr+s,tc+s,tr+s,tc+s,s);}}int
5、main(){intsize,r,c,row,col;//memset(Matrix,0,sizeof(Matrix));for(inti=0;i<=100;i++)//初始化为零{for(intj=0;j<=100;j++){Matrix[i][j]=0;}}scanf("%d",&size);//输入棋盘大小scanf("%d%d",&row,&col);//输入特殊方格位置ChessBoard(0,0,row,col,size);for(r=0;r6、+){printf("%2d",Matrix[r][c]);}printf("");}return0;}输出结果: 当前文档最多预览五页,下载文档查看全文 侵权申诉 举报 1 1 2 / 2 此文档下载收益归作者所有 下载文档 当前文档最多预览五页,下载文档查看全文 点击下载本文档 版权提示 下载文档 举报 温馨提示: 1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。 2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。 3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。 4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。 相关文章 更多 棋盘覆盖和整数规划问题 棋盘覆盖和整数规划问题 棋盘覆盖和整数规划问题 用分治法求解棋盘覆盖问题 精!!!C语言实现国际棋盘 算法与算法设计+棋盘覆盖问题.doc 棋盘覆盖算法.doc 棋盘覆盖问题C语言.doc 棋盘覆盖问题-C语言.doc 棋盘覆盖问题.pptx 相关标签 doc 覆盖 语言 实现 问题
6、+){printf("%2d",Matrix[r][c]);}printf("");}return0;}输出结果:
此文档下载收益归作者所有