使用递归树预测输出

时间:2014-03-20 01:57:51

标签: java recursion

  1. 我有这种方法,我希望能够预测这种递归方法的输出
  2. 使用递归树,任何人都知道这会是什么样子?
  3. 代码:

     public static void main(String[ ] args) {
         f(5, 2); }
    
     public static void f(int x, int y) {
         if (x > 0 && y > 0) {
             f(y - 1, x - 2);
             f(x - 2, y);
             System.out.print((x + y) + " ");
             f(x - 3, y - 1);
             System.out.print((x - y) + " ");
         }      
      }
    

1 个答案:

答案 0 :(得分:0)

开始使用f中的实际代码替换f的来电。在记事本或任何具有复制粘贴的程序中尝试它。使用适当的值填写xy。如果if语句为false,则可以省略其内容,否则可以永久替换。

一旦你完成了两个或三个替换,你就会明白为什么我们称之为递归树。如何绘制这个递归树取决于你。通常我们编写在树的每个节点中调用的方法的名称,以及调用的参数。