題目要求:
用ruby寫一個(gè)程序:要求輸出一個(gè)從1到n的字符串苞氮,其中遇到能被3整除的數(shù)字時(shí)凯力,用“Fizz”代替該數(shù)字;遇到能被5整除的數(shù)字時(shí)饵婆,用“Buzz”來代替勺馆;遇到既能被3整除又能被5整除的數(shù)字時(shí),用“FizzBuzz”來代替侨核,如下圖所示草穆。最后要求返回一個(gè)數(shù)組。
示例圖
分析:
題目要求非常簡單搓译,邏輯上也很直觀悲柱,依次判斷1-n之間的每個(gè)數(shù)字是否能否被3或者5整除,從而確定其是否需要被其他字符替代些己,把處理之后的字符放在一個(gè)數(shù)組中豌鸡;主要是會(huì)涉及循環(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