FizzBuzzWhizz ruby版本

FizzBuzzWhizz

你是一名體育老師,在某次課距離下課還有五分鐘時,你決定搞一個游戲。此時有100名學生在上課。游戲的規則是:

  1. 你首先說出三個不同的特殊數,要求必須是個位數,比如3、5、7。
  2. 讓所有學生拍成一隊,然后按順序報數。
  3. 學生報數時,如果所報數字是第一個特殊數(3)的倍數,那么不能說該數字,而要說Fizz;如果所報數字是第二個特殊數(5)的倍數,那么要說Buzz;如果所報數字是第三個特殊數(7)的倍數,那么要說Whizz。
  4. 學生報數時,如果所報數字同時是兩個特殊數的倍數情況下,也要特殊處理,比如第一個特殊數和第二個特殊數的倍數,那么不能說該數字,而是要說FizzBuzz, 以此類推。如果同時是三個特殊數的倍數,那么要說FizzBuzzWhizz。
  5. 學生報數時,如果所報數字包含了第一個特殊數,那么也不能說該數字,而是要說相應的單詞,比如本例中第一個特殊數是3,那么要報13的同學應該說Fizz。如果數字中包含了第一個特殊數,那么忽略規則3和規則4,比如要報35的同學只報Fizz,不報BuzzWhizz。

現在,我們需要你完成一個程序來模擬這個游戲,它首先接受3個特殊數,然后輸出100名學生應該報數的數或單詞。比如,

輸入
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)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 即使水墨丹青,何以繪出半妝佳人。 Scala是一門優雅而又復雜的程序設計語言,初學者很容易陷入細節而迷失方向。這也...
    劉光聰閱讀 3,066評論 4 9
  • 在網上看到這么一條十分有趣的題目: 你是一名體育老師,在某次課距離下課還有五分鐘時,你決定搞一個游戲。此時有100...
    謝小逸閱讀 608評論 1 4
  • 序言 控制復雜性是計算機編程的本質。—— Brian Kernighan 有一次給某團隊培訓TDD時,團隊選擇的語...
    _張曉龍_閱讀 1,283評論 0 4
  • 經過一段時間的籌備,我們的實驗室現在要開始納新啦~ 當然我們也是要經過面試的呀親愛的們 你們期待已久的面試題出爐啦...
    977777閱讀 1,188評論 0 0
  • 問題 你是一名體育老師,在某次課距離下課還有五分鐘時,你決定搞一個游戲。此時有100名學生在上課。游戲的規則是: ...
    davidhuangdw閱讀 758評論 0 1