我遇到了这种浏览网页搜索递归方法的方法.相信我,我无法得到它的逻辑.基本上,此方法查找给定数量的密码量.
public int aantalCijfers(int n)
{
if (n < 10)
{
return 1;
}
else if ((n > 9) && (n < 100))
{
return 2;
}
else
{
return (aantalCijfers(n / 100) + 2);
}
}
Run Code Online (Sandbox Code Playgroud)
让我们举个例子.让我们假设我们使用5000作为参数,我的结论将如下面的步骤:
但相反,它返回4,它工作正常,而我期待它不.请问,如果你弄清楚它是如何工作的,请指出这个方法如何得出正确结论的步骤?
当然.:-)但首先,请注意功能说aantalCijfers(n/100) + 2,而不是 aantalCijfers(n/100 + 2).我有一种感觉,你可能误解了这一点.
基本情况是1或2位数.除此之外,除以100(因此剥离两位数),重新计算,并在结果中加2.
以5000为例:
digits(5000)digits(50) + 22 + 24你可以进一步扩展它.比如说,使用1000000.
digits(1000000)digits(10000) + 2digits(100) + 2 + 2digits(1) + 2 + 2 + 21 + 2 + 2 + 27| 归档时间: |
|
| 查看次数: |
233 次 |
| 最近记录: |