前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >2019蓝桥杯-矩形切割

2019蓝桥杯-矩形切割

作者头像
算法与编程之美
发布2021-03-15 14:58:10
7590
发布2021-03-15 14:58:10
举报
文章被收录于专栏:算法与编程之美

问题描述

当他面对一块矩形材料时,他总是从中间切割一刀,切出一块最大的正方形,剩下一块矩形,然后再切割剩下的矩形材料,直到全部切为正方形为止。例如,对于一块两边分别为 5 和 3 的材料(记为 5×3),小明会依次切出 3×3、2×2、1×1、1×1 共 4 个正方形。现在小明有一块矩形的材料,两边长分别是 2019 和 324。请问小明最终会切出多少个正方形?

解决方案

要从一块矩形材料中切出最大的正方形,以矩形最短的一条边为正方形的边长,切割出最大正方形。因为按照一条边来切割正方形剩下的图形一定也会是一个矩形,所以我们可以将剩下的两条边进行长短的比较,然后将较长的那条边作为下一个切割的正方形的边长。我们按照编程思维,运用一个循环,加上条件语句,对两条边长度比较,长边减去短边的值,然后将切割数加一。

接下来展示完整的代码。

代码语言:javascript
复制
a = 2019

b = 324

count = 1

for i in range(2019):

     if a > b:

         a -= b

         count += 1

     elif a < b:

         b -= a

         count += 1

     else:

         print(count)

         break

运行此代码:

图2.1 运行流程

结语

此题难度较小,对题目仔细分析之后,想出解题思路就能顺延写下接下来的步骤了。

实习编辑:王晓姣

稿件来源:深度学习与文旅应用实验室(DLETA)

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法与编程之美 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档