Joh*_*ohn 1 java math recursion
public static int triple(int n)
{
if (n == 0)
return 0;
else
total = 3 + triple(n-1);
System.out.println(total);
return total;
}
Run Code Online (Sandbox Code Playgroud)
好的,所以我有一个简单的回忆示例,我似乎无法掌握,我希望有人能够让我逐步了解程序如何获得其输出.
这就是我认为会发生的事情.让我们说,n=5
所以程序循环和命中total = 3 + triple(5-1)
我认为将等于7 ..这是程序打印错误
3
6
9
12
15
所以...然后我认为三重必须在打印总数之前再次运行...我相信它确实如此,但我根本不明白它的总计是如何.
因为它看起来像这样:
3 + triple(4)
3 + triple(3)
3 + triple(2)
3 + triple(1)
=3
Run Code Online (Sandbox Code Playgroud)
有人可以解释一下,因为你我可以很失落!
你解释它有些不对劲.它更像是这样的:
triple(5) = 3 + triple(4) triple(4) = 3 + triple(3) triple(3) = 3 + triple(2) triple(2) = 3 + triple(1) triple(1) = 3 + triple(0) triple(0) = 0
现在想象一下triple(0)
,triple(1)
等都是独立的变量,并解决triple(5)
通过自己的方式工作了.