我有一个简单的递归算法,该算法返回斐波那契数:
private static double fib_recursive(int n){
if(n <= 2) return 1;
else return fib_recursive(n-1) + fib_recursive(n-2);
}
现在我的任务是返回时间,该方法将用于计算给定计算机上的第400个斐波那契数。 fib_recursive(400)。 “将”以粗体显示,因为我无法运行该函数,因为此方法可能需要很长时间才能给出答案。
如何最好地实现?
最佳答案
计算每个递归调用要花费多少时间,找出多少个递归调用,您就会得到答案。
使用更智能的递归算法可以更快地完成此操作,但是对于您的算法,只需输入一些时序信息即可。