Я не новичок в рекурсии, но я немного заржавел, и я не понимаю, как мне следует интерпретировать строку String out = q + i ;, "i" преобразуется в строку или добавляется в q ?? Небольшой пример для нескольких рекурсий был бы полезен.
Почти решил эту проблему жадным способом, не хватило немного творчества, поэтому мне пришлось рекурсивно реализовать это с помощью друга, который раньше знал проблему и не мог ее объяснить ...
public static void main (аргументы String []) {
Сканер java = новый сканер (System.in);
int n=java.nextInt(); // assume n is 2
String q= "";
int start=0;
Numbers(start,q,n);}
общедоступные статические пустые числа (int start, String q, int n)
{
if(n==0)
System.out.print(q+" ");
// с этого момента
for(int i=start;i<=9;i++)
{
String out=q+i;
Numbers(i+1,out,n-1);
}
}
В моем «пошаговом» подходе он показывает разные результаты относительно тех, что были предоставлены моей IDE, то есть я не вижу проблемы ясно.
01 02 03 04 05 - для первых «пяти» выходных данных, заданных компилятором, когда n равно 2.