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)

10-08 07:02