博客
关于我
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/

    你可能感兴趣的文章
    Python基础——SQLite数据库基本操作
    查看>>
    Python基础——MySQL数据库基本操作
    查看>>
    Python基础_列表 list
    查看>>
    python系列【仅供参考】:python异步库调用gevent和asyncio对比
    查看>>
    python基础3
    查看>>
    Python基础08 面向对象的基本概念
    查看>>
    Python基础-函数篇
    查看>>
    python基础---->常用模块
    查看>>
    Python基础(2):控制结构
    查看>>
    Python基础 | 关于“循环”那些事
    查看>>
    python系列【仅供参考】:python之subprocess模块rsync拉取文件
    查看>>
    python系列【仅供参考】:python 远程rdp
    查看>>
    python基础
    查看>>
    Python基本语法与变量类型
    查看>>
    python基本数据类型(容器)- tuple list dict set
    查看>>
    python基本工资的调整方案_Python薪资又涨了!这可咋办!
    查看>>
    Python基准测试和性能分析内存管理和垃圾回收
    查看>>
    Python基于RESTful风格的接口自动化测试实战
    查看>>
    python基于flask搭建http服务(四)—— Docker容器化部署
    查看>>
    python基于flask搭建http服务(二)—— 实现Excel上传、数据清洗、入库
    查看>>