棋盘覆盖问题-C语言

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

.1/3'.实验报告学号541413250107姓名高行行专业班级移动互联网14-01课程算法分析与设计实验日期2016.9.29实验时间8:00-9:00实验情况备注棋盘覆盖问题算法:#includestdio.hinttile=1;intboard[100][100];voidChessBoard(inttr,inttc,intdr,intdc,intsize){if(size==1)return;//递归边界intt=tile++;//L型骨牌号ints=size/2;//分割棋盘//覆盖左上角子棋盘if(drtr+s&&dctc+s)//特殊方格在此棋盘中ChessBoard(tr,tc,dr,dc,s);else{//此棋盘中无特殊方格,用t号L型骨牌覆盖右下角board[tr+s-1][tc+s-1]=t;//覆盖本子棋盘中的其余方格ChessBoard(tr,tc,tr+s-1,tc+s-1,s);}//覆盖右上角子棋盘if(drtr+s&&dc=tc+s)//特殊方格在此棋盘中ChessBoard(tr,tc,dr,dc,s);else{//特此棋盘中无特殊方格,t号L型骨牌覆盖左下角board[tr+s-1][tc+s]=t;//覆盖本子棋盘中的其余方格ChessBoard(tr,tc+s,tr+s-1,tc+s,s);}//覆盖左下角子棋盘if(dr=tr+s&&dctc+s)//特殊方格在此棋盘中ChessBoard(tr+s,tc,dr,dc,s);else{//此棋盘中无特殊方格,t号L型骨牌覆盖右上角board[tr+s][tc+s-1]=t;//覆盖本子棋盘中的其余方格ChessBoard(tr+s,tc,tr+s,tc+s-1,s);.2/3'.}//覆盖右上角子棋盘if(dr=tr+s&&dc=tc+s)//特殊方格在此棋盘中ChessBoard(tr+s,tc+s,dr,dc,s);else{//此棋盘中无特殊方格,t号L型骨牌覆盖左上角board[tr+s][tc+s]=t;//覆盖本子棋盘中的其余方格ChessBoard(tr+s,tc+s,tr+s,tc+s,s);}}intmain(){intsize,r,c,row,col;printf(输入棋盘大小:\n);scanf(%d,&size);//输入棋盘大小printf(输入特殊方格位置:row,col\n);scanf(%d,%d,&row,&col);//输入特殊方格位置ChessBoard(0,0,row,col,size);printf(输出棋盘覆盖结果:\n);for(r=0;rsize;r++)//输出棋盘覆盖结果{for(c=0;csize;c++){printf(%d,board[r][c]);}printf(\n);}return0;}运行效果:.3/3'.实验报告成绩老师注:1)专业班级按打印课表中名称填写;2)课程名称按课表中名称填写,不能简写;3)实验日期格式示例:2011.03.09;4)实验时间格式示例:“第三大节”5)实验情况包括任务(或题目)、解决方案(或者代码)、结果等;6)实验报告成绩按五级标准评分;

1 / 3
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功