填空题
求菲波那契数列的数学表达式为
fibonacci(n)=n, n=0,1;
fibonacci(n)=fibonacci(n-1)+fibonacci(n-2), n≥2;
设m是long型变量,下面是递归算法求菲波那契数列的方法
long fibonacci(long n)
{ if(n= =0| |n= =1)return n;
else return (fibonacci(n-1)+fibonacci(n-2));
}
当语句m=fibonacci(3),执行时,方法fibonacci1被调用了 2次。
【正确答案】
1、5
【答案解析】递归算法是常用的一种解决比较复杂问题的算法,如果采用顺序编程,代码量相当大并且计算过程有规律的问题的方法,其基本的思想就是“自己调用自己”。在本题中,我们需要深入到递归算法当中,来看看方法被调用了几次。调用第一次,得到fibonacci(3)=fibonacci(2)+fibonacci(1);看fibonacci(1),调用第二次,到递归头,返回1;看fibonacci(2),调用第三次,得到fibonacci(2)=fibonacci(1)+fibonacci(0);看fibonacci(1),调用第四次,到递归头,返回1;看fibonacci(0),调用第五次,到递归头,返回0;程序结束,方法fibonacci---|||________|||---被调用了5次。