FizzBuzzWhizz
你是一名體育老師,在某次課距離下課還有五分鐘時(shí),你決定搞一個(gè)游戲。此時(shí)有100名學(xué)生在上課。游戲的規(guī)則是:
- 你首先說(shuō)出三個(gè)不同的特殊數(shù),要求必須是個(gè)位數(shù),比如3、5、7。
- 讓所有學(xué)生拍成一隊(duì),然后按順序報(bào)數(shù)。
- 學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字是第一個(gè)特殊數(shù)(3)的倍數(shù),那么不能說(shuō)該數(shù)字,而要說(shuō)Fizz;如果所報(bào)數(shù)字是第二個(gè)特殊數(shù)(5)的倍數(shù),那么要說(shuō)Buzz;如果所報(bào)數(shù)字是第三個(gè)特殊數(shù)(7)的倍數(shù),那么要說(shuō)Whizz。
- 學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字同時(shí)是兩個(gè)特殊數(shù)的倍數(shù)情況下,也要特殊處理,比如第一個(gè)特殊數(shù)和第二個(gè)特殊數(shù)的倍數(shù),那么不能說(shuō)該數(shù)字,而是要說(shuō)FizzBuzz, 以此類推。如果同時(shí)是三個(gè)特殊數(shù)的倍數(shù),那么要說(shuō)FizzBuzzWhizz。
- 學(xué)生報(bào)數(shù)時(shí),如果所報(bào)數(shù)字包含了第一個(gè)特殊數(shù),那么也不能說(shuō)該數(shù)字,而是要說(shuō)相應(yīng)的單詞,比如本例中第一個(gè)特殊數(shù)是3,那么要報(bào)13的同學(xué)應(yīng)該說(shuō)Fizz。如果數(shù)字中包含了第一個(gè)特殊數(shù),那么忽略規(guī)則3和規(guī)則4,比如要報(bào)35的同學(xué)只報(bào)Fizz,不報(bào)BuzzWhizz。
現(xiàn)在,我們需要你完成一個(gè)程序來(lái)模擬這個(gè)游戲,它首先接受3個(gè)特殊數(shù),然后輸出100名學(xué)生應(yīng)該報(bào)數(shù)的數(shù)或單詞。比如,
輸入
3,5,7
輸出(片段)
1
2
Fizz
4
Buzz
Fizz
Whizz
8
Fizz
Buzz
11
Fizz
Fizz
Whizz
FizzBuzz
16
17
Fizz
19
Buzz
…
一直到100
def fizzBuzzWhizz(a, b, c)
(1..100).each{|x| puts((x.to_s.include?(a.to_s) ? 'Fizz' : false) || (x % a != 0 && x % b != 0 && x % c != 0 ? x : false) || (x % a == 0 ? 'Fizz' : '') + (x % b == 0 ? 'Buzz' : '') + (x % c == 0 ? 'Whizz' : ''))}
end
fizzBuzzWhizz(3, 5, 7)