如何以相反的顺序调用递归函数?

Sah*_*han 2 java recursion

我被问到一个面试问题,说明:如何将一个数字从一个打印到提供的参数号到一个递归函数?

假设函数名称是recursiveFunc.当我称之为

recursiveFunc(100);
Run Code Online (Sandbox Code Playgroud)

它应该打印1,2,3到100,依此类推.

请注意,它不应该使用任何其他帮助初始化等变量.

有什么想法吗?

cri*_*007 5

只需在递归后打印该值

public void recursiveFunc(int n) {
    if (n <= 0) return;
    recursiveFunc(n-1); // recurses 
    System.out.println(n); // prints 1 first 
}
Run Code Online (Sandbox Code Playgroud)


dav*_*ave 5

就像是:

void recursiveFunc(int n)
{
     if (n == 0)
     {
         return;
     }
     recursiveFunc(n-1);
     System.out.println(n);
}
Run Code Online (Sandbox Code Playgroud)

  • 不会.它将从1到100打印.您首先将堆栈从100向下移动到1然后进行打印.因此它将从1到100打印 (3认同)