📅  最后修改于: 2023-12-03 15:28:38.891000             🧑  作者: Mango
本题是2021年GATE计算机科学入门考试设置1的第62个问题。该题目考察了一个基本的编程概念,即使用递归算法编写程序来计算斐波那契数列。
编写一个递归函数,该函数接受一个正整数n作为参数,并返回第n个斐波那契数。
下面是一个python程序的示例:
def fibonacci(n):
if n <= 0:
print("Incorrect input")
elif n == 1:
return 0
elif n == 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
#测试代码
print(fibonacci(7))
在上面的代码中,我们定义了一个递归函数来计算斐波那契数列。如果输入的参数小于或等于零,则给出错误提示;如果输入参数为1,则返回0;如果输入参数为2,则返回1;否则函数将调用自身两次,分别为n-1和n-2,并返回这两个递归调用的和。最后,我们在程序的最后一行输出第7个斐波那契数。
斐波那契数列是一个经典的计算机科学问题,它是递归算法的一个很好的例子。该算法的时间复杂度为O(2^n),其空间复杂度为O(n),因为在递归树中需要存储n个节点。然而,这种算法在n稍微大一些的时候就会因为算法复杂度太高而变得非常缓慢。对于大多数实际应用中的斐波那契计算,我们需要使用更高效的算法。