喊7游戏 python版

一、题目描述

喊7 是一个传统的聚会游戏,N个人围成一圈,按顺时针从1-7编号。

编号为1的人从1开始喊数,下一个人喊得数字是上一个人喊得数字+1。

但是当将要喊出数字7的倍数或者含有7的话,不能喊出 而是要喊过。

假定N个人都没有失误。当喊道数字k时,可以统计每个人喊 “过"的次数。

现给定一个长度n的数组,存储打乱的每个人喊”过"的次数,请把它还原成正确顺序,即数组的第i个元素存储编号i的人喊“过“的次数。
输入描述

输入为1行,空格分割的喊过的次数, 注意k并不提供,k不超过200,数字个数为n。

1 2 0 0 0

输出描述

输出为1行,顺序正确的喊过的次数 空格分割。

0 2 0 1 0

二、解题思路

分析:题中没有告诉k(即数到的最后一个数),所以无法从k这个方向入手。从喊过的次数则可以推断出k的大致范围。而参与人数则是索引

思路:

逆着求解,统计喊过的总次数;判断喊过的条件,每次满足条件时,总次数减1,只到总次数为0;然后在满足条件的时候判断是那个索引对应值加1。

三、详细代码

def calculate_pass_order(input_counts):
    total_passes = sum(input_counts)  # 得到总共多少次过
    players = len(input_counts)  # 参与人数
    pass_counts = [0] * players  # 初始化列表

    current_num = 1
    current_player = 0

    while total_passes > 0:
        is_multiple_of_7 = current_num % 7 == 0
        contains_7 = '7' in str(current_num)  # 强制转换类型

        if is_multiple_of_7 or contains_7:
            pass_counts[current_player] += 1
            total_passes -= 1

        current_num += 1
        current_player = (current_player + 1) % players # 索引从0-6进行循环

    return pass_counts


if __name__ == "__main__":
    input_counts = list(map(int, input().split()))
    result = calculate_pass_order(input_counts)
    print(" ".join(map(str, result)))

四、额外补充

 print(" ".join(map(str, result)))

最后这行代码没有怎么看懂

原因:因为join是用来连接字符串,而result中元素类型是int型,所以需要用map将元素映射成str类型。

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-04-14 18:02:04       98 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-04-14 18:02:04       106 阅读
  3. 在Django里面运行非项目文件

    2024-04-14 18:02:04       87 阅读
  4. Python语言-面向对象

    2024-04-14 18:02:04       96 阅读

热门阅读

  1. Unity自定义框架(2)-----------事件中心

    2024-04-14 18:02:04       39 阅读
  2. ucore 实验物理内存管理篇

    2024-04-14 18:02:04       33 阅读
  3. React state用法 异步总结

    2024-04-14 18:02:04       27 阅读
  4. PV和uv的区别

    2024-04-14 18:02:04       42 阅读
  5. 力扣经典150题第二十二题:Z 字形变换

    2024-04-14 18:02:04       35 阅读
  6. Qt Designer 控件箱中的控件介绍及布局比列分配

    2024-04-14 18:02:04       42 阅读
  7. 基于springboot的多维分类知识管理系统源码数据库

    2024-04-14 18:02:04       25 阅读
  8. 常用镜像地址:pip,yum,jar,linx镜像,apache系列等等

    2024-04-14 18:02:04       30 阅读
  9. okcc呼叫中心人工智能行业2024年市场发展分析

    2024-04-14 18:02:04       29 阅读
  10. 167. 两数之和 II - 输入有序数组

    2024-04-14 18:02:04       35 阅读
  11. Python网络请求:requests库7个功能实战

    2024-04-14 18:02:04       37 阅读
  12. Github 2024-04-10 开源项目日报Top10

    2024-04-14 18:02:04       35 阅读