Разделение целочисленных значений в массив
Есть ли эквивалент метода String chars для fixnum? Пытаюсь разделить целочисленное значение по значению в массив, например, 1234 -> [1, 2, 3, 4], чтобы затем выполнить операции с отдельными значениями.
Или лучше сначала преобразовать в строку, выполнить операцию (пример x 2), а затем объединить как целые числа? Как ниже:
def method_name num
num.to_s.chars.map{|x| x.to_i*2}.join.to_i
end
1 ответ
Там нет ничего, что разделяет число на отдельные цифры, так как это, как правило, бессмысленно делать с числом. Вы также можете сделать это математическим способом, но я не вижу явного преимущества в этом, учитывая требования (пока).
Я мог бы предпочесть разделить преобразование и умножение, например,
n.to_s.chars.map(&:to_i).map { |n| n * 2 }.join.to_i
Он немного более универсален, и, если, скажем, ваш множитель изменяется, его легко изменить (здесь не показано, но есть способы).