第22章 算法
“算法,就像一张菜谱。”
——瓦辛·拉提夫(Waseem Latif)
本章将简要介绍算法。算法(algorithm)是解决问题的一系列步骤。问题的类型多种多样,从列表检索到打印歌词都可以用算法解决。
22.1 FizzBuzz
本节中,我们来学习如何应对面试中经常会问到的问题——FizzBuzz。
编写一个程序,打印从1到100之间的数字。碰到3的倍数时,不打印数字,而是打印"Fizz"
;碰到5的倍数时,则打印"Buzz"
;如果是3和5共同的倍数,则打印"FizzBuzz"
。
为了解决该问题,我们需要检查某个数字是否是3、5或二者共同的倍数。如果数字是3的倍数,那么将其除以3,不会有余数。5的倍数也适用该原则。取模运算符%
的返回结果为余数。遍历1到100之间的数字,并检查每个数字是否能被3、5整除,或者能否被两个数字同时整除:
01 # http://tinyurl.com/jroprmn
02
03
04 def fizz_buzz():
05 for i in range(1, 101):
06 if i % 3 == 0 and i % 5 =&#