博客
关于我
C++/Python PAT乙级1069 微博转发抽奖 (20分)
阅读量:633 次
发布时间:2019-03-14

本文共 848 字,大约阅读时间需要 2 分钟。

为了解决这个问题,我们需要编写一个程序来帮助小明确定微博转发抽奖活动的中奖名单。程序需要从转发的网友中按固定间隔选出中奖者,并确保每个网友只能中奖一次。

方法思路

  • 读取输入数据:首先读取转发总量M、中奖间隔N以及第一位中奖者的序号S。
  • 存储转发名单:将转发的网友昵称存储在一个列表中。
  • 跟踪中奖者:使用一个集合来记录已经中奖的网友,避免重复中奖。
  • 确定中奖名单:从指定的序号开始,每隔N个位置检查一个网友是否已经中奖。如果没有中奖过,则将其标记为中奖者并加入结果列表。
  • 输出结果:根据结果列表输出中奖名单。如果没有中奖者,则输出“Keep going...”。
  • 解决代码

    m, n, s = map(int, input().split())names = [input().strip() for _ in range(m)]result = []used = set()i = s - 1  # 转换为0索引while i < m:    current = names[i]    if current not in used:        used.add(current)        result.append(current)    i += nif result:    for name in result:        print(name)else:    print("Keep going...")

    代码解释

  • 读取输入:使用input().split()读取M、N和S的值,然后读取接下来的M行昵称。
  • 初始化变量result列表用于存储中奖名单,used集合用于记录已中奖的网友。
  • 遍历名单:从序号S开始(转换为0索引),每隔N个位置检查一个网友。如果该网友未中奖,则标记并加入结果。
  • 输出结果:如果有中奖名单,逐行输出;否则输出“Keep going...”。
  • 这个方法确保我们正确地从指定位置开始,每隔固定间隔选出中奖者,并避免重复中奖,满足题目的所有要求。

    转载地址:http://vyqoz.baihongyu.com/

    你可能感兴趣的文章
    Netty:ChannelPipeline和ChannelHandler为什么会鬼混在一起?
    查看>>
    Netty:原理架构解析
    查看>>
    Network Dissection:Quantifying Interpretability of Deep Visual Representations(深层视觉表征的量化解释)
    查看>>
    Network Sniffer and Connection Analyzer
    查看>>
    Network 灰鸽宝典【目录】
    查看>>
    NetworkX系列教程(11)-graph和其他数据格式转换
    查看>>
    Networkx读取军械调查-ITN综合传输网络?/读取GML文件
    查看>>
    network小学习
    查看>>
    Netwox网络工具使用详解
    查看>>
    Net与Flex入门
    查看>>
    net包之IPConn
    查看>>
    Net操作配置文件(Web.config|App.config)通用类
    查看>>
    Neutron系列 : Neutron OVS OpenFlow 流表 和 L2 Population(7)
    查看>>
    New Relic——手机应用app开发达人的福利立即就到啦!
    查看>>
    NFinal学习笔记 02—NFinalBuild
    查看>>
    NFS
    查看>>
    NFS Server及Client配置与挂载详解
    查看>>
    NFS共享文件系统搭建
    查看>>
    nfs复习
    查看>>
    NFS安装配置
    查看>>