叠筐

问题来源:Problem - 2074

问题描述:

叠筐_第1张图片
问题描述

思路分析:

    思路一:

    我们可以采用跟算法书里面第40页“蛇形填数”一样的思路来完成这道题。

    通过输出样式可以发现,输出的结果就是一个大矩形(假设四个角还在)里面往里缩小套矩形,每个矩形上的所使用的字符是一样的。因此,我们可以先把最外围的矩形填满,再依次往里缩小,填满。

    同时,由于题目里面要求的字符是两种,因此设置一个变量cout来判断完成了的矩形个数,以cout的j奇偶来决定矩形使用的字符。

    我的代码从左上角开始填充,代码中采用四个while来来进行预判:判断是否越界,往下走是否会到达一个已经填充过了的格子,采用“右,下,左,上”这样的轨迹来填充矩阵,直到填不下。

    实现代码如下:

叠筐_第2张图片
思路一代码

    思路二:

    由输出样式可以看出,输出矩阵以中心为基,向四周扩散(假设四个角存在),是一个中心对称的图形。因此,我们也可以从中心出发,把中心对称的位置填上,以此依次向外扩张。

    实现代码如下:


叠筐_第3张图片
思路二代码

你可能感兴趣的:(叠筐)