谁能进图书馆

L1-3 谁能进图书馆

分数         10                                        作者          陈越                                单位        浙江大学

为了保障安静的阅读环境,有些公共图书馆对儿童入馆做出了限制。例如“12 岁以下儿童禁止入馆,除非有 18 岁以上(包括 18 岁)的成人陪同”。现在有两位小/大朋友跑来问你,他们能不能进去?请你写个程序自动给他们一个回复。

输入格式:

输入在一行中给出 4 个整数:

禁入年龄线 陪同年龄线 询问者1的年龄 询问者2的年龄

这里的禁入年龄线是指严格小于该年龄的儿童单独禁止入馆;陪同年龄线是指大于等于该年龄的人士可以陪同儿童入馆。默认两个询问者的编号依次分别为 1 和 2;年龄和年龄线都是 [1, 200] 区间内的整数,并且保证 陪同年龄线 严格大于 禁入年龄线

输出格式:

在一行中输出对两位询问者的回答,如果可以进就输出 年龄-Y,否则输出 年龄-N,中间空 1 格,行首尾不得有多余空格。

在第二行根据两个询问者的情况输出一句话:

  • 如果两个人必须一起进,则输出 qing X zhao gu hao Y,其中 X 是陪同人的编号, Y 是小孩子的编号;
  • 如果两个人都可以进但不是必须一起的,则输出 huan ying ru guan
  • 如果两个人都进不去,则输出 zhang da zai lai ba
  • 如果一个人能进一个不能,则输出 X: huan ying ru guan,其中 X 是可以入馆的那个人的编号。

输入样例 1:

12 18 18 8

输出样例 1:

18-Y 8-Y
qing 1 zhao gu hao 2

输入样例 2:

12 18 10 15

输出样例 2:

10-N 15-Y
2: huan ying ru guan

代码长度限制16 KB                时间限制400 ms                内存限制64 MB                栈限制8192 KB

思路:

这是一个稍微烦躁的根据条件来判断情况的题
共有以下四种情况:
  • 两人年龄都小于禁入年龄线,都不可以进,输出zhang da zai lai ba
  • 两人年龄都大于禁入年龄线,都可以进,输出huan ying ru guan
  • 一人年龄小于禁入年龄线,一人大于陪同年龄线,则二人必须一块进去,输出qing * zhao gu hao *。这时应在细分两种情况:1 > 22 > 1
  • 一人年龄小于禁入年龄线,一人大于禁入年龄线,但是小于陪同年龄线,所以只能一人进,一人不可以进,输出huan ying ru guan,同样再细分两种情况:1 > 22 > 1
反思:

龙龙🐉在判断前加了个排序,让询问者1的年龄<询问者2的年龄,这样就可以让询问者2的年龄直接和陪同年龄线比较

但是在输出Yes/No时分不清那个是哪个,不仅没有简化问题,反而更麻烦了。

代码如下

# 获取输入
ban, pei, w1, w2 = map(int, input().split())
X = 1
Y = 2
s1, s2 = w1, w2

# 确保 s1 是小的年龄,s2 是大的年龄,同时更新 X 和 Y
if w1 > w2:
    s1, s2 = w2, w1
    X = 2
    Y = 1

# 判断两位询问者是否可以入馆
if s1 < ban:
    if s2 < ban:
        print(f"{w1}-N {w2}-N")
        print("zhang da zai lai ba")
    elif s2 >= pei:
        print(f"{w1}-Y {w2}-Y")
        print(f"qing {Y} zhao gu hao {X}")
    else:
        if X == 2:
            print(f"{w1}-Y {w2}-N")
        else:
            print(f"{w1}-N {w2}-Y")
        print(f"{Y}: huan ying ru guan")
else:
    print(f"{w1}-Y {w2}-Y")
    print("huan ying ru guan")

注意:

这里的禁入年龄线严格小于该年龄的儿童禁止入馆,(没有严格二字),是指儿童不能单独进入

要分清哪个年龄大,哪个带哪个进去

要把握自己每次if,else的条件是啥,分开的状态是啥

  • 21
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

热血少年鸡小龙

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

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

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

打赏作者

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

抵扣说明:

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

余额充值