📜  门| GATE CS 2021 |设置 1 |第 62 题(1)

📅  最后修改于: 2023-12-03 15:28:38.891000             🧑  作者: Mango

GATE CS 2021 设置 1 第 62 题

本题是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稍微大一些的时候就会因为算法复杂度太高而变得非常缓慢。对于大多数实际应用中的斐波那契计算,我们需要使用更高效的算法。