zoukankan      html  css  js  c++  java
  • 大爽Python入门练习题 29 比赛轮数

    大爽Python入门练习题总目录

    第二章 中期练习题 中等 第9题

    题目

    出处: leetcode-1688: Count of Matches in Tournament
    已将问题简化处理,原题要求配对次数,这里只求比赛轮数。

    简介

    实现一个函数get_turn_count(n)
    接受一个整数n作为参数,
    返回n个队伍比赛决出第一名时,比赛的轮数。
    (每一轮两两一组比较,胜者进入下一轮,直至决出一名最终胜利者,即第一名)。

    补充:默认n大于1。

    详细说明

    • 如果当前队伍数n偶数 ,那么每支队伍都会与另一支队伍配对。
      下一轮队伍数量为\(\frac{n}{2}\)

    • 如果当前队伍数n奇数,那么将会随机轮空并晋级一支队伍, 其余的队伍配对。
      下一轮的队伍数量为\(\frac{n-1}{2} + 1\)

    比如输入的n7,则比赛总轮数为3
    具体如下

    1. 第一轮,一队轮空,6队决出3队,共4队进入下一轮。
    2. 第二轮,4队决出2队,共2队进入下一轮。
    3. 第三轮,2队决出1队,决出第一名,比赛完毕。

    示例

    示例一

    r = get_turn_count(7)
    print(r)
    

    输出为

    3
    

    示例二

    r = get_turn_count(17)
    print(r)
    

    输出为

    5
    

    分割线

    本小段没有实际意义,
    仅用于分隔题目和答案。
    防止学生无意中直接看到答案,
    影响思路。



















    答案

    def get_turn_count(n):
        count = 0
        while n > 1:
            if n % 2 == 0:
                n = n // 2
            else:
                n = (n-1) // 2 + 1
    
            count += 1
    
        return count
    
  • 相关阅读:
    flare3d_plane
    flare3d_TextureFilter
    flare3d_animation
    flare3d黄色星球案例再次解读整理
    pureMVC(二)
    flare3d_ColladaLoader
    flare3d_clone
    四则运算
    15章
    带界面的四则运算
  • 原文地址:https://www.cnblogs.com/BigShuang/p/15685718.html
Copyright © 2011-2022 走看看