给定位数,我有此代码可以打印所有“有序”位数的数字
(如果数字是xyz
,那么它是有序的,当且仅当 x<y<z),
该代码有效,但我无法理解 for 循环中使用的逻辑。这是递归,但如果有人能解释更多,那就太好了。
class OrderedNumbers{
public static void main(String args[]){
printOrdered(0,0,3); // 3 digit numbers
}
private static void printOrdered(int number, int prev, int n) {
if(n==0){
System.out.println(number);
return;
}
for(int i=(prev+1); i<(11-n); i++){
printOrdered(number*10 + i, i, n-1) ;
}
}
}