📜  Fizz Buzz实施|套装2(1)

📅  最后修改于: 2023-12-03 15:00:46.521000             🧑  作者: Mango

Fizz Buzz实例 | 套装2

Fizz Buzz是一个常见的面试题,主要考察编程基础和逻辑思维能力。在这个任务中,我们将探索Fizz Buzz的不同变体,并提供解决方案。

Fizz Buzz基础版

Fizz Buzz的基础版即为从1到n输出数字,但当数字是3的倍数时,输出Fizz;当数字是5的倍数时,输出Buzz;当数字同时是3和5的倍数时,输出Fizz Buzz。

以下是实现基础版Fizz Buzz的Python代码:

def fizz_buzz(n):
    for i in range(1, n+1):
        if i % 15 == 0:
            print("Fizz Buzz")
        elif i % 3 == 0:
            print("Fizz")
        elif i % 5 == 0:
            print("Buzz")
        else:
            print(i)

我们可以通过调用以上函数输出数字1到100的结果:

fizz_buzz(100)
Fizz Buzz约定版

在这个版本的Fizz Buzz中,输出规则与基础版相同,但我们需要排除出现在数字中的3和5。例如,数字13在基础版Fizz Buzz中应该输出Fizz,但在这个版本中应该输出13。

以下是实现约定版Fizz Buzz的Python代码:

def fizz_buzz_conventional(n):
    for i in range(1, n+1):
        if '3' in str(i) and '5' in str(i):
            print(i)
        elif '3' in str(i):
            continue
        elif '5' in str(i):
            continue
        elif i % 15 == 0:
            print("Fizz Buzz")
        elif i % 3 == 0:
            print("Fizz")
        elif i % 5 == 0:
            print("Buzz")
        else:
            print(i)

我们可以通过调用以上函数输出数字1到100的结果:

fizz_buzz_conventional(100)
Fizz Buzz游戏版

在Fizz Buzz游戏版中,两个玩家参与其中。游戏从1开始,每个玩家轮流报数。当数字是3的倍数时,报数者需要说“Fizz”;当数字是5的倍数时,报数者需要说“Buzz”;当数字同时是3和5的倍数时,报数者需要说“Fizz Buzz”。与标准版本不同的是,在游戏版中,如果一个玩家说了错误的单词,他们就会输掉游戏。

以下是实现Fizz Buzz游戏版的Python代码:

def fizz_buzz_game():
    n = 1
    while True:
        if n % 3 == 0 and n % 5 == 0:
            answer = "Fizz Buzz"
        elif n % 3 == 0:
            answer = "Fizz"
        elif n % 5 == 0:
            answer = "Buzz"
        else:
            answer = str(n)
        player_answer = input("Player 1: " + answer + "\n")
        if player_answer != answer:
            print("Player 2 wins!")
            break
        player_answer = input("Player 2: " + answer + "\n")
        if player_answer != answer:
            print("Player 1 wins!")
            break
        n += 1

我们可以通过调用以上函数开始一场Fizz Buzz游戏:

fizz_buzz_game()

现在,通过这些变体的实现,您应该对Fizz Buzz有了深入的了解。这是一个简单的问题,但可以展现编程和逻辑思考能力,因此在准备面试时确保掌握此技能将非常有用。