问题来源:Problem - 2074
问题描述:
思路分析:
思路一:
我们可以采用跟算法书里面第40页“蛇形填数”一样的思路来完成这道题。
通过输出样式可以发现,输出的结果就是一个大矩形(假设四个角还在)里面往里缩小套矩形,每个矩形上的所使用的字符是一样的。因此,我们可以先把最外围的矩形填满,再依次往里缩小,填满。
同时,由于题目里面要求的字符是两种,因此设置一个变量cout来判断完成了的矩形个数,以cout的j奇偶来决定矩形使用的字符。
我的代码从左上角开始填充,代码中采用四个while来来进行预判:判断是否越界,往下走是否会到达一个已经填充过了的格子,采用“右,下,左,上”这样的轨迹来填充矩阵,直到填不下。
实现代码如下:
思路二:
由输出样式可以看出,输出矩阵以中心为基,向四周扩散(假设四个角存在),是一个中心对称的图形。因此,我们也可以从中心出发,把中心对称的位置填上,以此依次向外扩张。