现在我正在尝试递归,但我被卡住了.目的是总结数字的所有数字.例如,方法的签名采用一个int参数.此参数是数字(例如123).递归地我应该总结1 + 2 + 3,并给出6的答案.
到目前为止我试过:
(这可能没有意义,但我尝试了很多)
public int sumofD(int n)
{
if (n == 0)
{ return 0; }
else
{
return n % 10 + sumofD(n-(n%10));
}
}
Run Code Online (Sandbox Code Playgroud)
sumofD(n-(n%10))使得10从n = 11(11-(11%10)= 11-1= 10).这将导致您的递归方法永远不会结束.你实际上并没有划分任何东西,所以循环是无止境的.
简单地用10除以将完成这项工作:
sumofD(n / 10)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
99 次 |
| 最近记录: |