不使用循环打印斐波那契数字系列

Joh*_*ohn 1 java algorithm fibonacci

是否有一个黑客打印前n个斐波那契数字而不调用循环

for(int i=1; i<n; i++)
    System.out.println(computeF(n));
Run Code Online (Sandbox Code Playgroud)

从主程序?

public static int computeF(int n)
{
    if(n==0)
    {
        return 0;
    }
    else if(n==1)
    {
        return 1;
    }
    else
    {
        return computeF(n-1)+computeF(n-2); 
    }

}
Run Code Online (Sandbox Code Playgroud)

可能有一种方法可以在递归中打印中间值,这将打印斐波那契数字.

Ben*_*enH 5

你可以使用尾递归.

  • @mike,你从错误的角度看它.Fibonacci序列仍然是一个迭代序列,不需要自己调用两次.您只需要在自己打电话时提供更多信息.`ComputeF(d,n1,n2)=> d == 0?n1:ComputeF(d - 1,n2,n2 + n1)`.然后用`ComputeF(n,0,1)`启动它 (2认同)