2015-09-16 98 views
2
public static String backwards(Integer x){ 
    if (x < 0){ 
     return ""; 
    }else{ 
     return x + ", " + backwards(x - 1); 
    } 
} 

我做了一個方法,如果給定一個正整數(通過命令行),將從該整數一直計數到0.我的問題是我應該採取什麼方法來反轉這個?遞歸反向

而不是去

4, 3, 2, 1, 0, 

舉例來說,我希望它是像這樣

0, 1, 2, 3, 4 

回答

8

只是扭轉return語句,以使它產生從0輸出到x - 1它輸出前x

public static String backwards(Integer x) { 
    if (x < 0) { 
     return ""; 
    } else { 
     return backwards(x - 1) + ", " + x; 
    } 
} 
+1

*捂臉*它是簡單.....?我需要得到一些睡眠哈哈反正,所以謝謝Eran – Xirol

+0

或'return(4-x)+「,」+ backwards(x-1);'但我懷疑這不是預期的答案:) – dotvav

+0

,0 ,1,2,3是輸出。 0之前的逗號打擾了我,我該如何擺脫它? – Xirol

1

稍微修改版本,以避免開始一個「」一個結果。條件可能是「×== 0」,而是用「< =」避免了X的負輸入值額外的檢查

public static String backwards(Integer x){ 
    if (x <= 0){ 
     return "0"; 
    }else{ 
     return backwards(x - 1) + ", " + x; 
    } 
}