用递归函数计算斐波那契数列中的第n项值

电子说

1.3w人已加入

描述

编写一个递归函数,用于计算斐波那契数列中的第n项值,并在主函数中调用该函数输出斐波那契数列的前15项。

斐波那契数列:1,1,2,3,5,8,13,21,……

可表示为:f(n)=1,当n<=2;f(n)=f(n-1)+f(n-2),当n>2;



Python实现:
# 递归函数,计算斐波那契数列中的第n项值
def fibonacci(n):
    if n <= 2:
        return 1
else:
        return fibonacci(n-1) + fibonacci(n-2)

# 主函数,输出斐波那契数列的前15项
if __name__ == '__main__':
    for i in range(1, 16):
        print(fibonacci(i), end=' ')

C语言实现:

在C语言中,递归是一种函数调用自身的技术。它可以使解决问题的算法更加简单和优雅。

递归函数包括两个部分:递归基或终止条件和递归部分。递归基是指一个最简单的情况,不再需要调用自身即可返回结果。递归部分是指将问题分解为更小的相同问题的步骤,每次调用自身时问题规模都会减小。

在编写递归函数时,需要注意避免无限循环和过多的递归,否则会导致程序崩溃或栈溢出的错误。

以下是一个计算阶乘的递归函数示例:

c复制代码
int factorial(int n){
if(n == 0)
return 1; //递归基
else
return n * factorial(n-1); //递归部分
}

在这个函数中,如果n等于0,则直接返回1作为递归基;否则,将n乘以小于n的阶乘,直到达到递归基条件。



#include < stdio.h >

// 递归函数,计算斐波那契数列中的第n项值

int fibonacci(int n) {

if (n <= 2) {

return 1;

} else {

return fibonacci(n-1) + fibonacci(n-2);

}

}

// 主函数,输出斐波那契数列的前15项

int main() {

int i;

for (i = 1; i <= 15; i++) {

printf("%d ", fibonacci(i));

}

return 0;

}


打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分