Как написать серый код в рекурсии java
public class GrayCode { // append reverse of order n gray code to prefix string, and print public static void yarg(String prefix, int n) { if (n == 0) StdOut.println(prefix); else { gray(prefix + "1", n - 1); yarg(prefix + "0", n - 1); } } // append order n gray code to end of prefix string, and print public static void gray(String prefix, int n) { if (n == 0) StdOut.println(prefix); else { gray(prefix + "0", n - 1); yarg(prefix + "1", n - 1); } } public static void main(String[] args) { int n = Integer.parseInt(args[0]); gray("", n); } }
Может ли кто-нибудь объяснить, как работает этот код?
Что я уже пробовал:
Я пытался написать метод для серого кода, и мой путь был очень несовершенным, много циклов и списков. Гораздо лучше использовать рекурсию, и я нашел этот пример, но я не совсем уверен, знаю ли я, как это работает.
Patrice T
Что он выводит ?
Серый код-Википедия[^]