python完成FizzBuzzWhizz問題(拉勾網(wǎng)面試題)示例
拉勾網(wǎng)面試題
1. 你首先說出三個不同的特殊數(shù),要求必須是個位數(shù),比如3、5、7。
2. 讓所有學生拍成一隊,然后按順序報數(shù)。
3. 學生報數(shù)時,如果所報數(shù)字是第一個特殊數(shù)(3)的倍數(shù),那么不能說該數(shù)字,而要說Fizz;如果所報數(shù)字是第二個特殊數(shù)(5)的倍數(shù),那么要說Buzz;如果所報數(shù)字是第三個特殊數(shù)(7)的倍數(shù),那么要說Whizz。
4. 學生報數(shù)時,如果所報數(shù)字同時是兩個特殊數(shù)的倍數(shù)情況下,也要特殊處理,比如第一個特殊數(shù)和第二個特殊數(shù)的倍數(shù),那么不能說該數(shù)字,而是要說FizzBuzz, 以此類推。如果同時是三個特殊數(shù)的倍數(shù),那么要說FizzBuzzWhizz。
5. 學生報數(shù)時,如果所報數(shù)字包含了第一個特殊數(shù),那么也不能說該數(shù)字,而是要說相應的單詞,比如本例中第一個特殊數(shù)是3,那么要報13的同學應該說Fizz。如果數(shù)字中包含了第一個特殊數(shù),那么忽略規(guī)則3和規(guī)則4,比如要報35的同學只報Fizz,不報BuzzWhizz。
現(xiàn)在,我們需要你完成一個程序來模擬這個游戲,它首先接受3個特殊數(shù),然后輸出100名學生應該報數(shù)的數(shù)或單詞。
def check(a, dic, d):
answer = ''
if str(a) in str(d):
return dic[a]
for x in dic:
if not (d % x):
answer = answer + dic[x]
if not answer:
return d
return answer
if __name__ == '__main__':
a = int(raw_input('input u a: '))
b = int(raw_input('input u b: '))
c = int(raw_input('input u c: '))
dic = {a: 'Fizz', b: 'Buzz', c: 'Whizz'}
for x in xrange(1, 101):
print check(a, dic, x)
['Fizz'[(str(3)not in str(i))*4:]or 'Fizz'[i % 3 * 5 : ] + 'Buzz'[i % 5 * 5 : ] + 'Whizz'[i % 7 * 5 : ] or i for i in range(1,101)]
相關文章
Django values()和value_list()的使用
這篇文章主要介紹了Django values()和value_list()的使用,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-03-03
使用python中的in ,not in來檢查元素是不是在列表中的方法
今天小編就為大家分享一篇使用python中的in ,not in來檢查元素是不是在列表中的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-07-07

