递归方法调用 - 确定输出

时间:2013-12-13 19:19:01

标签: java recursion

这是AP计算机科学中的问题。

public void doSomething(int value)
{
   if(0 < value && value < 10)
   {
      doSomething(value – 1);
      doSomething(value + 1);
      System.out.print(" " + value);
   }
}
  

通过调用doSomething(4)会打印以下哪些内容?   的 A 即可。 4 3 2 1 5 6 7 8 9   的即可。 4 3 5 2 6 1 7 8 9    C 即可。 9 8 7 6 5 1 2 3 4   的 d 即可。 9 8 7 1 6 2 5 3 4   电子即可。由于无限递归,不会打印任何内容

当我正在制定解决方案时 - 对我来说似乎是无限递归。这是正确的吗?获得解决方案的最快方法是什么,因为每次多项选择的时间不到2分钟。 获得最快速方法的任何帮助都会有所帮助。

这个问题应该是手工追踪的。您无法运行代码来检查答案。

2 个答案:

答案 0 :(得分:2)

由于无限递归,您的问题会生成StackOverflow。下次你应该亲自试试。

答案 1 :(得分:0)

它是无限递归,因为值总是递减并增加1。