Есть много способов выполнить то, что вы описываете.У вас уже есть некоторые реализации в комментариях и в другом ответе @ Abhimanyu.
Проблема, с которой я столкнулся, состоит в том, чтобы итерировать значение для последовательности.Я продолжаю получать его как [2,2,2,2,2]
Ваш пример кода не будет работать, потому что Kernel#gets
не возвращает число, ноString
, за которым следует символ новой строки (поскольку он использует разделитель по умолчанию из глобальной переменной $/
, которая, как представляется, "\n"
):
[1] pry(main)> gets
2
=> "2\n"
[2] pry(main)> gets.class
2
=> String
Для исправления своего фрагмента вынеобходимо добавить .chomp.to_i
, чтобы удалить символ новой строки и преобразовать его в целое число:
def generate_sequence
n = gets.chomp.to_i
i = 0
while i < 4
n = n * 4
p n
i = i + 1
end
end