根据我的教授的说法,循环比使用递归更快、更缺乏,但我想出了这个 C++ 代码,它使用递归和循环计算斐波那契数列,结果证明它们非常相似。所以我最大化了可能的输入以查看性能是否存在差异,并且由于某种原因递归比使用循环更好。有谁知道为什么?提前致谢。
这是代码:
#include "stdafx.h"
#include "iostream"
#include <time.h>
using namespace std;
double F[200000000];
//double F[5];
/*int Fib(int num)
{
if (num == 0)
{
return 0;
}
if (num == 1)
{
return 1;
}
return Fib(num - 1) + Fib(num - 2);
}*/
double FiboNR(int n) // array of size n
{
for (int i = 2; i <= n; i++)
{
F[i] = F[i - 1] + F[i - 2];
}
return (F[n]);
}
double FibMod(int …Run Code Online (Sandbox Code Playgroud)