桁数を指定して、桁数のすべての「順序付けられた」数字を出力するこのコードがあります
(number が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) ;
}
}
}