棋盘覆盖问题c语言

绝世美人儿
724次浏览
2021年01月06日 13:53
最佳经验
本文由作者推荐

美丽的名字-abac式的词语

2021年1月6日发(作者:窦朝荣)



实验报告





0107

算法分析与设计 实验
日期
实验情况


姓高行行 专业
班级
移动互联网14-01
实验
时间
8:00-
9:00


棋盘覆盖问题算法:
#include<>
int tile=1;
int board[100][100];
void ChessBoard(int tr,int tc,int dr,int dc,int size)
{
if(size==1) return;递归边界
int t=tile++;L型骨牌号
int s=size2;分割棋盘
覆盖左上角子棋盘
if(dr 特殊方格在此棋盘中
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(dr=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&&dc 特殊方格在此棋盘中
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);
}
覆盖右上角子棋盘
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);
}
}
int main()
{
int size,r,c,row,col;
printf(输入棋盘大小:n
scanf(输入棋盘大小
printf(输入特殊方格位置:row,col n
scanf(输入特殊方格位置
ChessBoard(0,0,row,col,size);
printf(输出棋盘覆盖结果:n
for (r = 0; r < size; r++)输出棋盘覆盖结果
{
for (c = 0; c < size; c++)
{
printf(
}
printf(
}
return 0;
}
运行效果:






实验报告成



老师

注:1)专业班级按打印课表中名称填写;2)课程名称按课表中名称填写,不能简写;
3) 实验日期格式示例:)实验时间格
式示例:“第三大节”5)实验情况包括任务(或题目)、解决方案( 或者代码)、结果等;6)
实验报告成绩按五级标准评分;
精心搜集整理,只为你的需要

守时-感人的爱情句子


煎饼的做法大全-读童年有感


麻木的近义词-江天一传翻译


腊八豆腐-幸福满满


企业家的故事-英文小作文


梦见别人给我剪头发-开学第一天作文


婚姻庆典服务-红色经典诗歌朗诵


版式设计图片-打电话推销技巧