В настоящее время я пытаюсь написать метод, который преобразует десятичные числа в двоичный код в Ruby. Однако он должен работать без использования функции Ruby's .to_s(2)
, и он должен быть рекурсивным методом вместо цикла. Кроме того, первая цифра не может быть 0, но оно должно начинаться с 1. Ниже приведен код:Ruby рекурсивный десятичный двоичный метод
def to_binary(d)
binary = (d % 2).to_s
if d == 0
return binary
elsif d == 1
return 1.to_s
else
return binary = binary + to_binary(d/2).to_s
end
return binary.to_i
end
Кажется, чтобы получить право большинства случаев, когда первый d%-на самом деле 1, но не все из них. Как я могу удалить первые 0 и заставить его работать?
Обратите внимание, что вы можете удалить последнее утверждение, так как оно никогда не будет выполнено. Кроме того, вам не нужны никакие ключевые слова 'return'. Рассмотрим здесь инструкцию 'case':' case d; когда 0 - двоичный; когда 1 затем «1»; else двоичный + to_binary (d/2) .to_s; end'. –