的所有訂購的數字我有這樣的代碼來打印所有的「命令」一個位數的號碼,給定的數字解釋這個遞歸算法打印位數
數量(如果數量是xyz
,那麼它是有序的iff 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) ;
}
}
}
假設你沒有寫這段代碼(否則你會理解它),你在哪裏找到這段代碼? – Bernard
我在一些網站上以僞代碼的形式找到它。我不記得該網站。我試圖通過運行和調試來理解它,但是不能。 – rgamber
@noahz,感謝您的編輯。 – rgamber