我对递归并不陌生,但是我有点生锈,而且我不明白我应该如何解释String out = q + i;行,是将“ i”转换为字符串还是添加到q?举几个递归的小例子会很有用。
几乎用贪婪的方式解决了这个问题,缺乏一点创造力,因此我不得不在一个以前知道这个问题并且无法解释这个问题的朋友的帮助下以递归的方式实现这个问题。
public static void main(String [] args){
Scanner java = new Scanner(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时编译器给出的第一个“五个”输出。