2015-08-03 169 views
0

因此,我必須編寫遞歸方法來累加特定數字中的數字值。例如,digitSum(1234)返回10(這是總和1 + 2 + 3 + 4)。Java遞歸方法將參數的數字相加

到目前爲止,我有這樣的:

public static int digitSum (int n) { 
    if(n<10) { return n ;} //basecase
  else return !!! ; 
} 

我要補充的!部分,謝謝

回答

2

只要它寫在簡單的英語:當你有1234,初始步驟應該是做sum(123) + 4

當你將其轉換爲代碼:

public static int digitSum (int n) { 
    if(n<10) { 
     return n 
    } 
    else 
    return n%10 + digitSum(n/10); 
} 

n%10給你的最後一個數字,n/10讓你的剩餘部分。

當你有n=1234n%10 = 4n/10 = 123。所以根據你的普通英文sum(123) + 4它應該是digitSum(n/10) + (n%10)

1

家庭作業?

1234餘10是如圖4所示,1234至1210年爲123你schould返回digitSum(123)+ 4