一、题目:FizzBuzz
FizzBuzz是一个简单的小游戏。游戏规则如下:从1开始数数,当你的数字为3的倍数时, 说出“Fizz”代替数字,5的倍数用“Buzz”代替,对于既是3又是5的倍数,就说“FizzBuzz”。现在,让我们写一个Python程序,打印出1到100的FizzBuzz。
问题要求:从1开始数到100。而不仅仅是个位数,应该可以对任意整数进行FizzBuzz化。
以下是完成该任务的Python代码:
# 定义一个执行FizzBuzz的函数,参数从1到100
def fizz_buzz(n):
# 通过 for 循环逐一遍历
for i in range(1, n+1):
# 使用条件判断写出FizzBuzz的规则
# 对15取余,如果为0,既可以被3整除,也能被5整除
if i % 15 == 0:
print('FizzBuzz')
# 对3取余,如果为0,就可以被3整除
elif i % 3 == 0:
print('Fizz')
# 对5取余,如果为0,就可以被5整除
elif i % 5 == 0:
print('Buzz')
else:
# 其他情况下,直接打印数字
print(i)
# 调用函数,测试1到100的数字
fizz_buzz(100)
代码注释解释:
- 首先,我们定义了一个函数名为fizz_buzz,该函数接受一个参数
n
,代表我们要进行FizzBuzz化的数字的范围。 - 通过for循环,我们遍历了从1到
n
的所有整数。 - 在循环中,我们对每个数字做出判断。如果数字能够同时被3和5整除,那么这个数字就应该被FizzBuzz化。这通过判断是否能被15(3和5的公倍数)整除实现。如果满足条件,我们就打印出’FizzBuzz’。
- 如果数字不能同时被3和5整除,我们继续判断它是否能被3整除。如果满足条件,我们就打印出’Fizz’。
- 如果数字既不能被3整除,也不能同时被3和5整除,我们再判断它是否能被5整除。如果满足条件,我们就打印出’Buzz’。
- 如果上述所有条件都不满足,那么我们便直接打印出这个数字。
- 最后,我们调用了这个函数,测试了从1到100的数字,打印出其FizzBuzz形式。
这是一个非常经典的入门题目,同时也是许多面试官喜欢问的问题,主要是用来测试编程者是否能对问题进行基本的逻辑分析和编程逻辑的实现。
二、题目:合并两个有序列表
给定两个已排序的列表,将它们合并成一个新的有序列表。您可以将新的列表直接打印到控制台。
问题要求:尽量不要修改原始列表。
以下是完成该任务的Python代码:
def merge_sorted_lists(list1, list2):
# 初始化结果列表和两个列表的索引
result = []
i = j = 0
# 当两个列表中任意一个还有剩余元素时执行循环
while i < len(list1) and j < len(list2):
# 根据两个列表当前索引的元素大小来决定下一步如何操作
if list1[i] < list2[j]:
result.append(list1[i])
i += 1
else:
result.append(list2[j])
j += 1