📅  最后修改于: 2023-12-03 15:00:46.521000             🧑  作者: Mango
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中,输出规则与基础版相同,但我们需要排除出现在数字中的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游戏版中,两个玩家参与其中。游戏从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有了深入的了解。这是一个简单的问题,但可以展现编程和逻辑思考能力,因此在准备面试时确保掌握此技能将非常有用。