用Ruby完成FizzBuzz題目

題目要求:

用ruby寫一個程序:要求輸出一個從1到n的字符串,其中遇到能被3整除的數(shù)字時,用“Fizz”代替該數(shù)字;遇到能被5整除的數(shù)字時,用“Buzz”來代替;遇到既能被3整除又能被5整除的數(shù)字時,用“FizzBuzz”來代替,如下圖所示。最后要求返回一個數(shù)組。

示例圖

分析:

題目要求非常簡單,邏輯上也很直觀,依次判斷1-n之間的每個數(shù)字是否能否被3或者5整除,從而確定其是否需要被其他字符替代,把處理之后的字符放在一個數(shù)組中;主要是會涉及循環(huán)語句和條件判斷語句,還有數(shù)組的創(chuàng)建和添加元素。

預(yù)備知識:

1.循環(huán)語句
  • while 語句
while  i < n do
     code
end

其中do也可以換成 : ,也可以省略不寫;

  • for語句
for i in 1..n
2.條件判斷語句
  • if...else 語句
if 條件 then
     code
elsif 條件 then
     code
else
     code
end

需要注意的是,在Ruby中使用elsif,而不是else if ;并且通常情況下我們省略then。

3.數(shù)組的創(chuàng)建和添加元素
  • 數(shù)組的創(chuàng)建
string = Array.new
  • 添加元素
array << obj   把給定的對象添加到數(shù)組的末尾

在Ruby中,可以通過在變量或者常量前面加 # 字符,來訪問任何變量或者常量的值。

具體代碼:

# @param {Integer} n
# @return {String[]}
def fizz_buzz(n)
    string = Array.new
    i=0
    while i < n do
        i+=1
        if i % 3 == 0 and i % 5==0 
              string << "FizzBuzz"
        elsif i % 5 == 0 
              string << "Buzz"
            elsif i % 3==0 
                string << "Fizz"
            else
                string << "#{i}"
        end
    end
    string
end
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,294評論 0 17
  • # The Ruby Style Guide > Hey jude, don't make it bad. > T...
    司徒雷斯閱讀 371評論 0 2
  • 從九點半一直到現(xiàn)在,怎么都睡不著。隱隱有一股焦慮情緒,經(jīng)常有情緒焦慮的現(xiàn)象,這不是一件好事情。晚安!
    小妖耳子閱讀 199評論 0 2
  • “要不我們來拍一張,我把你踢下水的照片吧!” “你這是要謀殺親夫吧!” “來,讓我給你拍張照。” “熱死寶寶啦??!...
    994_e2d3閱讀 289評論 0 0
  • 8,面對錯誤:今日,我低估了空方的力量也高估了國家隊的水準。雖然最后補救險勝卻帶不來任何快感。和以往一樣,這不是我...
    問基閱讀 144評論 0 0

友情鏈接更多精彩內(nèi)容