纸张尺寸 问题

蓝桥杯 | 纸张尺寸 问题 | python

问题描述
在 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
94
运行限制
最大运行时间:1s
最大运行内存: 512M

  1. 自己解决
import os
import sys

# 请在此输入您的代码
s=input()
a=[]
l=1189                  
w=841
for i in range(11):         # len(a)=11
    if l>w:
        a.append(l)
#        a.append(w)
        l=l//2
    else:
        a.append(w)
#        a.append(l)
        w=w//2
'''
print(a)
[1189, 841, 594, 420, 297, 210, 148, 105, 74, 52, 37]
'''
for i in range(10):         # 名称一定是 A0、A1、A2、A3、A4、A5、A6、A7、A8、A9 之一
    if int(s[1])==i:
#        print(a[2*i])
#        print(a[2*i+1])
        print(a[i])         # 输出长边的长度
        print(a[i+1])       # 输出短边的长度
  1. 官方题解
    在这里插入图片描述
import os
import sys

# 请在此输入您的代码
x = int(input()[1])
a, b = 1189, 841        	# 维护长边长度a和短边长度b
# 输入A0,a=1189,b=841
# 输入Ax,根据x循环x次(对折x次)
for i in range(x): 
	# 也可以直接a,b=b,a//2     
    a //= 2             	# 每次让长边a除以2(向下取整),短边b不变
    if a < b:           	# 再根据a,b的大小关系进行调整
        a, b = b, a     	# 让a永远表示长边,让b永远表示短边
print(a)
print(b)
  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值