2019蓝桥杯-矩形切割
问题描述当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。例如,对于一块两边分别为 5 和 3 的材料(记为 5×3),小明会依次切出 3×3、2×2、1×1、1×1 共 4 个正方形。现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会切出多少个正方形?解决方案要从一块矩形材料中切出最大的正方形,以矩形最短的一条边为正方形的边长,切割出最大正方形。因为按照一条边来切割正方形剩下的图形一定也会是一个矩形,所以我们可以将剩下的两条边进行长短的比较,然后将较长的那条边作为下一个切割的正方形的边长。我们按照编程思维,运用一个循环,加上条件语句,对两条边长度比较,长边减去短边的值,然后将切割数加一。接下来展示完整的代码。a = 2019b = 324count = 1for i in range(2019):if a > b:a -= bcount += 1elif a < b:b -= acount += 1else:print(count)break运行此代码:
图2.1 运行流程结语此题难度较小,对题目仔细分析之后,想出解题思路就能顺延写下接下来的步骤了。实习编辑:王晓姣稿件来源:深度学习与文旅应用实验室(DLETA)
赞 (0)