給定兩個數字,比如說start = 1
和end = 4
,我試圖按順序向上然後向下計算所有數字。無循環允許使用遞歸計算上下數字
1 2 3 4 3 2 1
我試着寫一個遞歸函數。該功能正在計數罰款和它的打印1 2 3 4,但是當我嘗試倒數,我期望4 3 2 1
,但我陷入了一個無限循環。原因是起始值在遞歸中丟失,當從下往上計數時,我不知道該停止在哪裏。
我已經花了4個小時。我們甚至可以在遞歸中做到這一點?遞歸是單向的
public static void countUpDown(int start, int end) {
//to pring bottom up -> 4 3 2 1
if (start > end && end > 0) {
System.out.println(end - 1);
countUpDown(start, end - 1);
}
//to print up 1 2 3 4
if (start <= end) {
System.out.println("-->" + start);
countUpDown(start + 1, end);
}
}
任何幫助把我放在正確的方向將有助於 –