Так что изначально я просто играю с вызовом ole 'FizzBuzz'. Для тех, кто может не знать о том, что это за вызов, позвольте мне объяснить. Идея состоит в том, чтобы распечатать цифры 1..100
, если число делится на 3
, оно печатает Fizz
вместо 3
; если число делится на 5
, оно печатает Buzz
; И если число делится на оба, оно печатает FizzBuzz
. Вот как я выполнил задачу:Добавление элементов в новый массив Ruby
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]
Любые предложения были бы весьма полезными.
я вижу. Я удалил 'return super_array'. На данный момент программа просто возвращает тот самый массив, который я вставлял. '[3,10,15,19]'. Тем не менее, работая над этим, хорошо поймите! – Nappstir
Удивительный! Просто обновил и применил то, что вы сказали, это сработало отлично! Благодарю за ваш ответ. – Nappstir
Посмотрите мое обновленное предложение - вам нужно вернуть super_array - сразу после цикла - haha - SNAP, мы оба печатаем одновременно;) –