博客
关于我
CCF 201803-1 跳一跳 满分代码
阅读量:312 次
发布时间:2019-03-03

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

为了解决这个问题,我们需要根据给定的规则计算“跳一跳”游戏的得分。玩家每次跳跃可能有三种结果:跳到方块上但没有跳到中心(得1分)、跳到方块中心(得分根据上一次的得分情况增加),或者没跳到方块上(游戏结束)。

方法思路

我们将遍历每次跳跃的结果,并根据规则计算得分。具体步骤如下:

  • 初始化得分 s 和上一次跳到中心的得分 prev_score。
  • 遍历每个跳跃结果:
    • 如果跳跃结果为0,游戏结束。
    • 如果跳跃结果为1,得1分,并重置 prev_score 为0。
    • 如果跳跃结果为2,根据 prev_score 来决定当前得分。如果上一次也是跳到中心,则得分增加2分;否则,得分为2分。
  • 解决代码

    def calculate_score():    import sys    numbers = list(map(int, sys.stdin.read().split()))    s = 0    prev_score = 0    for x in numbers:        if x == 0:            break        if x == 1:            s += 1            prev_score = 0        elif x == 2:            if prev_score > 0:                add = prev_score + 2            else:                add = 2            s += add            prev_score = add    return scalculate_score()

    代码解释

    • numbers 是从标准输入读取并转换为整数列表。
    • s 用于累计总得分。
    • prev_score 记录上一次跳到中心的得分。
    • 遍历每个跳跃结果:
      • 如果结果为0,结束循环。
      • 如果结果为1,得1分,重置 prev_score。
      • 如果结果为2,根据 prev_score 计算当前得分,并更新 prev_score。

    这种方法确保了我们正确地根据游戏规则计算得分,并且在处理每个跳跃结果时都考虑了上一次的得分情况。

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

    你可能感兴趣的文章
    python基础之---正则表达式
    查看>>
    python基础之---函数式编程
    查看>>
    python基础之---函数
    查看>>
    Python基础之(一)基本数据类型
    查看>>
    Python基础【os】
    查看>>
    Python基础——面向对象
    查看>>
    Python基础——线程锁
    查看>>
    python基础——线程与进程
    查看>>
    Python基础——构造方法和特殊成员方法
    查看>>
    Python基础——多线程值从Thread类继承
    查看>>
    Python基础——多线程之信号量
    查看>>
    Python基础——_thread多线程
    查看>>
    Python基础——Thread类与线程对象
    查看>>
    Python基础——Thread创建管理多线程
    查看>>
    Python基础——SQLite数据库基本操作
    查看>>
    Python基础——MySQL数据库基本操作
    查看>>
    Python基础_列表 list
    查看>>
    python系列【仅供参考】:python异步库调用gevent和asyncio对比
    查看>>
    python基础3
    查看>>
    Python基础08 面向对象的基本概念
    查看>>