用java实现该题书上第三种思路如下:
public void PrintToMaxOfNDigits(int n)
{
if(n<0)
return;
char[] number =new char[n];
for(int i=0;i<10;++i)
{
number[0]=i+'0';
Print1ToMaxOfNDigitsRecursively(number,n,0);
}
}
public void Print1ToMaxOfNDigitsRecursively(char[] number,int length,int index)
{
if(index==length-1)
{
printnumber(number);
return;
}
for(int i=0;i<10;++i)
{
number[index+1]=i+'0';
Print1ToMaxOfNDigitsRecursively(number,length,index);
}
}
这是一个使用Java编程解决的问题,通过递归方法`Print1ToMaxOfNDigitsRecursively`配合`PrintToMaxOfNDigits`函数,实现打印从1到最大n位数的所有可能组合。当n为负数时,不进行打印。递归过程中,逐位填充数字,并调用自身进行下一位的处理,直到达到指定长度。

被折叠的 条评论
为什么被折叠?



