public static int triple(int n)
{
if (n == 0)
return 0;
else
total = 3 + triple(n-1);
System.out.println(total);
return total;
}
好的,所以我有一个我似乎无法理解的简单的示例,我希望有人能够帮助我逐步了解程序如何获取输出。
这是我认为会发生的事情。可以说
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
有人可以解释一下,因为我很迷茫!
最佳答案
您在解释它有点错误。更像是这样:
三重(5)= 3 +三重(4)
三(4)= 3 +三(3)
三重(3)= 3 +三重(2)
三重(2)= 3 +三重(1)
三重(1)= 3 +三重(0)
三重(0)= 0
现在想象triple(0)
,triple(1)
等都是单独的变量,并通过逐步解决triple(5)
。