#3344. [GESP202312 五级 C++] 第 1 题
[GESP202312 五级 C++] 第 1 题
下面C++代码用于求斐波那契数列,该数列第1、2项为1,以后各项均是前两项之和。下面有关说法错误的是( )。
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;
}
{{ select(1) }}
fiboA()用递归方式,fiboB()循环方式fiboA()更加符合斐波那契数列的数学定义,直观易于理解,而fiboB()需要将数学定义转换为计算机程序实现fiboA()不仅仅更加符合数学定义,直观易于理解,且因代码量较少执行效率更高fiboB()虽然代码量有所增加,但其执行效率更高