2017-01-22 2 views
3

У меня возникли проблемы с написанием рекурсивных методов в Java. Я могу сделать более простые, такие как последовательность фибоначчи, GCD и т. Д. Мне нужно написать рекурсивный метод для преобразования десятичных чисел в двоичный код и возврата его в строковой форме. Я не уверен, хотя, если мне нужно вернуть результат String обратно в метод в рекурсивном вызове или просто эффективный способ его записи.Простые рекурсивные методы в Java

public static String toBinary(int decimal) {...} 

Может ли кто-нибудь пролить свет на простые шаги, чтобы достичь этого? Рекурсия по-прежнему немного размыта ко мне.

ответ

3

То, что вы, вероятно, должны сделать это в основном делят decimal на два каждый шаг рекурсии:

  • вход даже -> последний бит 0, разделить вход на 2 и вызвать toBinary снова
  • Вход нечетное -> последний бит 1, уменьшить ввод одного, разделите на 2, называют toBinary

Затем попытайтесь выяснить, когда, чтобы остановить рекурсию и как добавить биты в строку.

+0

Спасибо! Я попробую это и посмотрю, что работает. Было бы неправильно, если бы метод принял результат строки как еще один аргумент для добавления в строку? –

+0

@ColeDooley Не было бы ошибкой, но в то же время, вероятно, не идеально, пусть метод возвращает оценку «String» двоичного файла, который помещается. Вы можете начать снизу - что произойдет, если вы положите 0, что если вы ставите 1, что, если вы положите 2 и 3, то вы должны начать видеть, как обрабатывать конкатенацию строк через рекурсивный вызов. – luk2302

+0

Отлично, я попробую и посмотрю, что я придумал –

Смежные вопросы