0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

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

冬至子 来源:风景邮递Yuan 作者:风景邮递Yuan 2023-06-07 11:30 次阅读

编写一个递归函数,用于计算斐波那契数列中的第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;

}


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

    关注

    180

    文章

    7591

    浏览量

    135795
  • python
    +关注

    关注

    55

    文章

    4766

    浏览量

    84362
收藏 人收藏

    评论

    相关推荐

    【求教贴】MSI chips设计一个fibonacci 计数器

    display decoder 显示出输出的数列,输出结果如下0,1,1,2,3,5,8,13.。。。。。。。目前想到要用7419
    发表于 10-05 22:48

    llabview中国挑战赛第一题l

    数列。(义大利语:Successione二
    发表于 07-18 06:12

    数列

    生成数列,并求出其中偶数项之和,使用09版本编写
    发表于 08-20 19:59

    《C Primer Plus》读书笔记——递归

    ("LEVEL %d: n location %p\n" , n, &n);}输出如下:递归的基本原理每级
    发表于 02-05 20:06

    求助,ARM DS-5课程作业不会写,谁能代写,500元

    `求助,ARM DS-5课程作业不会写,谁能代写,酬劳是500元主要内容是用汇编写写两个计算数列
    发表于 02-24 10:39

    exe程序之时钟设计

    exe:exe程序之时钟设计
    发表于 12-26 11:14

    任务和函数的区别?

    人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容:1分别用任务和函数实现
    发表于 02-09 07:47

    C语言教程之数列

    C语言教程之数列,很好的C语言资料,快来学习吧。
    发表于 04-22 11:06 0次下载

    递归指的是在函数的定义中使用函数自身的方法

    C语言支持递归,即一个函数可以调用其自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入死循环。递归
    的头像 发表于 11-12 15:06 7070次阅读

    探究SMT对计算密集型workload的效果

    的效果,我自己写了一个简单的测试程序。   使用pthread开多个线程,每个线程分别计算数列
    的头像 发表于 10-28 15:40 1734次阅读
    探究SMT对<b class='flag-5'>计算</b>密集型workload的效果

    Verilog数字系统设计——任务和函数一(数列

    随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。提示:以下是本篇文章正文内容:1 分别用任务和函数实现
    发表于 12-05 19:06 9次下载
    Verilog数字系统设计——任务和<b class='flag-5'>函数</b>一(<b class='flag-5'>斐</b><b class='flag-5'>波</b><b class='flag-5'>那</b><b class='flag-5'>契</b><b class='flag-5'>数列</b>)

    数列的实现方式

    数列是一组第一位和第二位为1,从第三位开始,后一位是前两位和的一组递增数列
    的头像 发表于 09-08 10:52 1150次阅读

    关于数学理论的经典问题

    留下来的画像来看,他的神韵颇似晚他三个世纪的同胞画家拉斐尔。
    的头像 发表于 06-25 09:59 749次阅读
    关于<b class='flag-5'>斐</b><b class='flag-5'>波</b><b class='flag-5'>那</b><b class='flag-5'>契</b>数学理论的经典问题

    python编写数列

    数列是一个无限序列,从3开始,每一
    的头像 发表于 11-21 15:04 1131次阅读

    Python递归的经典案例

    当我们碰到诸如需要求阶乘或数列的问题时,使用普通的循环往往比较麻烦,但如果我们使用递归
    的头像 发表于 08-05 15:57 260次阅读