2012-03-04 82 views
0

該項目將編寫一個遞歸方法,用於輸出參數並沿每個步驟返回。
這是我到目前爲止有:每次在遞歸語句(java)中打印返回值?

public static int summation(int lower, int upper){ 
    if (lower > upper) 
     return 0; 
    else{ 
     System.out.println("Current lower bound: " + lower); 
     System.out.println("Upper bound: " + upper); 
     return lower + summation(lower+1, upper); 
    } 

它幾近完美的,它唯一缺少的是印刷每一次回報。如何做到這一點?

+1

你說的 「打印回報」 呢? – 2012-03-04 20:02:50

+0

基本上打印每一次它經過的總和 – matcpn 2012-03-04 20:04:00

回答

1

如何:

public static int summation(int lower, int upper){ 
    if (lower > upper) { 
     System.out.println("Returning: 0");    // print before return 
     return 0; 
    } else{ 
     int result = lower + summation(lower+1, upper); 

     System.out.println("Current lower bound: " + lower); 
     System.out.println("Upper bound: " + upper); 
     System.out.println("Returning: " + result);  // print before return 
     return result; 
    } 
} 
+0

這是我試過的,問題是輸出是所有的上限和下限,然後是所有的總和(如果這是有道理的)。我正在嘗試使輸出變低,然後變大,然後變大,然後重複。 – matcpn 2012-03-04 20:08:56

+0

更新的答案在返回之前打印右下角/右上角。 – aioobe 2012-03-04 20:16:23

+0

非常感謝您 – matcpn 2012-03-04 20:23:49

0
public static int summation(int lower, int upper) { 
    if (lower > upper) { 
     return 0; 
    } else { 
     int returned = lower + summation(lower + 1, upper); 
     System.out.println("Current lower bound: " + lower + " | " + "Upper bound: " + upper + " | " + "returned:" + returned); 
     return returned; 
    } 
} 

enter image description here