蓝桥杯真题代码记录(纸张尺寸

1. 题目:

在这里插入图片描述

在 ISO 国际标准中定义了 A0 纸张的大小为 1189mm
841mm, 将 A0 纸 沿长边对折后为 A1 纸, 大小为 841mm
594mm, 在对折的过程中长度直接取 下整 (实际裁剪时可能有损耗)。将 A1 纸沿长边对折后为 A2 纸, 依此类推。
输入纸张的名称, 请输出纸张的大小。

输入格式

输入一行包含一个字符串表示纸张的名称, 该名称一定是 A0、A1、A2、 A3、A4、A5、A6、A7、A8、A9 之一。

输出格式

输出两行,每行包含一个整数,依次表示长边和短边的长度。

样例输入1

A0

样例输出1

1189
841

样例输入 2

A1

样例输出 2

841
594

2. 我的代码:

import os
import sys

# 请在此输入您的代码
# 获取数字
num = int(input()[-1])

# dp下标表示纸张型号
dp = [[0, 0] for _ in range(num + 1)]

# 初始化
dp[0] = [1189, 841]
for i in range(1, num + 1):
  dp[i][0] = dp[i - 1][1]
  dp[i][1] = dp[i - 1][0] // 2

print(dp[-1][0])
print(dp[-1][1])

动态规划,dp数组下标代表的是:纸张的版式,比如0代表A0、1代表A1。dp数组代表的是:长和宽,一个一维数组,第一个元素表示长、第二个元素表示宽。

递推公式:长度等于上一个宽:dp[i][0] = dp[i - 1][1];宽度等于上一个长除以2:dp[i][1] = dp[i - 1][0] // 2

小结:

关注我给大家分享更多有趣的知识,以下是个人公众号,提供 ||代码兼职|| ||代码问题求解||
添加我的公众号即可:

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天玑y

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值