下面 C++ 代码用于求斐波那契数列,该数列第 、 项为 ,以后各项均是前两项之和。下面有关说法错误的是( )。
int fiboA(int N)
{
if (N == 1 || N == 2)
return 1;
return fiboA(N - 1) + fiboA(N - 2);
}
int fiboB(int N)
{
if (N == 1 || N == 2)
return 1;
int last2 = 1, last1 = 1;
int nowVal = 0;
for (int i = 2; i < N; i++)
{
nowVal = last1 + last2;
last2 = last1;
last1 = nowVal;
}
return nowVal;
}
- A.
fiboA()用递归方式,fiboB()循环方式 - B.
fiboA()更加符合斐波那契数列的数学定义,直观易于理解,而fiboB()需要将数学定义转换为计算机程序实现 - C.
fiboA()不仅更加符合数学定义,直观易于理解,且因代码量较少执行效率更高 - D.
fiboB()虽然代码量有所增加,但其执行效率更高