2015-08-03 176 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