所以最初我只是在玩 ole 'FizzBuzz' 挑战。对于那些可能不知道这个挑战是什么的人,请允许我解释一下。这个想法是打印出数字1..100
,如果数字可以被 整除3
,它会打印Fizz
而不是3
; 如果数字可以被 整除5
,则打印Buzz
;如果 number 可以被两者整除,则打印FizzBuzz
. 这就是我执行挑战的方式:
def super_fizzbuzz(array)
array.each do |element|
if element % 15 == 0
puts 'FizzBuzz'
elsif element % 5 == 0
puts 'Buzz'
elsif element % 3 == 0
puts "Fizz"
else
puts element
end
end
end
这将按预期工作。我想要做的是拥有它,以便用户可以放入一个整数数组super_fizzbuzz([3,10,15,19])
并让它返回数组,并用适当的单词替换数字:[Fizz, Buzz, FizzBuzz, 19]
。但是,我似乎无法执行此操作。我在下面尝试了以下方法,但它只将第一个答案添加到数组中。
super_array = []
array.each do |element|
if element % 15 == 0
super_array[element] << 'FizzBuzz'
elsif element % 5 == 0
super_array << 'Buzz'
elsif element % 3 == 0
super_array << "Fizz"
else
super_array << element
end
return super_array
end
我的想法是创建一个新数组,如果元素可以被其中一个或两个数字整除,则将其放入新数组中,如果不是,则将元素放入数组中。但是,当我运行它时会发生什么,它只会返回一个带有Fizz
. 如果我运行第一个代码并将数字放在一个数组中,它会返回:
Fizz
Buzz
FizzBuzz
19
[3, 10, 15, 19]
任何建议将不胜感激。