前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >零基础入门c语言函数之递归函数

零基础入门c语言函数之递归函数

作者头像
用户6754675
修改于 2020-10-10 10:01:50
修改于 2020-10-10 10:01:50
6270
举报
文章被收录于专栏:嵌入式单片机嵌入式单片机

  今天来总结一下关于递归函数的使用方面的问题。

  递归函数就是在函数使用的时候自己调用自己,层层调用,来实现你想要的功能。

  有两个最常用的例子,我们来写一下。

  (1)计算阶乘

  #include

  int factorial(int n); // 函数声明(阶乘)

  int main(void)

  {

  int a = 5;

  printf("%d的阶乘是:%d.\n", a, factorial(a));

  return 0;

  }

  int factorial(int n)

  {

  if (n < 1)

  {

  printf("error.\n");

  return -1;

  }

  if (n == 1)

  {

  return 1;

  }

  else

  {

  return (n * factorial(n-1));

  }

  }

  (2)斐波那契函数

  #include

  int fibonacci(int n); // 函数声明(斐波那契函数)

  int fibonacci(int n)

  {

  if (n == 0) return 0;

  if (n == 1) return 1;

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

  }

  int main(void)

  {

  int a;

  printf("%d的斐波那契函数值为%d",a,fibonacci(a));

  return 0;

  }

  第二个可能不太容易看明白,我们来分析一下

  首先,这个假设一个数为n ,

  第一次递归,f(n)=f(n-1)+f(n-2)

  第二次递归分为两个部分,

  f(n-1)=f(n-2)+f(n-3) f(n-2)=f(n-3)+f(n-4)

  第三次递归分为四个部分……一直递归到0和1为止。

  所以n==0或者n==1的时候返回一个常数很重要,要不然就会一直递归下去,直到触发段错误。

        可以参考这个学习资料(欢迎进群学习交流一起探讨学习:310226693)

http://www.makeru.com.cn/live/5413_2743.html?s=45051

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文系转载,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
作者已关闭评论
暂无评论
推荐阅读
编辑精选文章
换一批
完全理解C语言函数
在数学中,我们经常能听到各种函数,什么指数函数,对数函数,三角函数… 在维基百科中对函数的定义为:子程序
Yui_
2024/10/16
1000
完全理解C语言函数
Python 递归函数
✅作者简介:人工智能专业本科在读,喜欢计算机与编程,写博客记录自己的学习历程。 🍎个人主页:小嗷犬的博客 🍊个人信条:为天地立心,为生民立命,为往圣继绝学,为万世开太平。 🥭本文内容:Python 递归函数 ---- Python 递归函数 1.引入 2.斐波那契数列 ---- 1.引入 递归是一种广泛应用算法。它能够把一个大型复杂的问题转化为一个与原问题相似的较小规模的问题来求解,用非常简洁的方法来解决重要问题。就像一个人站在装满镜子的房间中,看到的影像就是递归的结果。递归在数学和计算机应
小嗷犬
2022/11/15
2.3K0
c语言如何利用指针间接赋值
我们都知道,指针是指向一段内存空间的。而这个内存空间也可以存放下一个内存空间的地址,这样一级级的传递下去,就变成了多级指针。在C语言中,多级指针是经常会用到的。
用户6754675
2020/12/17
2.1K0
Go 语言基础入门教程 —— 函数篇:递归函数与性能优化
很对编程语言都支持递归函数,所谓递归函数指的是在函数内部调用函数自身的函数,从数学解题思路来说,递归就是把一个大问题拆分成多个小问题,再各个击破,在实际开发过程中,某个问题满足以下条件就可以通过递归函数来解决:
学院君
2019/08/08
5710
什么是递归函数?[通俗易懂]
递归就是一个函数在它的函数体内调用它自身。执行递归函数将反复调用其自身,每调用一次就进入新的一层。递归函数必须有结束条件。 当函数在一直递推,直到遇到墙后返回,这个墙就是结束条件。 所以递归要有两个要素,结束条件与递推关系
全栈程序员站长
2022/10/01
1.3K0
什么是递归函数?[通俗易懂]
Python 算法基础篇:递归函数的编写和调用
递归是一种重要的编程技巧,通过在函数内部调用自身来解决问题。递归函数的编写和调用在算法中起着关键作用。本篇博客将详细解释递归函数的概念,展示递归函数的编写和调用过程,并通过实例代码演示递归在解决问题中的应用。
小蓝枣
2023/07/24
4220
【C语言系列】函数递归
递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。 下面我们看最简单的递归代码:
四念处茫茫
2025/02/06
1570
【C语言系列】函数递归
Go 语言递归函数
递归,就是在运行的过程中调用自己。 语法格式如下: func recursion() { recursion() /* 函数调用自身 */ } func main() { recursion() } Go 语言支持递归。但我们在使用递归时,开发者需要设置退出条件,否则递归将陷入无限循环中。 递归函数对于解决数学上的问题是非常有用的,就像计算阶乘,生成斐波那契数列等。 阶乘 以下实例通过 Go 语言的递归函数实例阶乘: package main import "fmt" func Factoria
李海彬
2018/03/27
9500
c语言从入门到实战——函数递归
函数递归是指一个函数直接或间接地调用自身,以解决问题的一种方法。在C语言中,函数递归可以用来计算阶乘、斐波那契数列等数学问题。 函数递归是一种编程技术,其中函数直接或间接地调用自身来解决问题。它常用于处理可以分解为更小同类问题的复杂问题,如排序、搜索树等。递归的基本思想是将问题分解为更简单的子问题,然后组合子问题的解来得到原问题的解。然而,递归需要小心处理终止条件,否则可能导致无限循环。此外,递归可能消耗大量内存,因为它需要存储每个递归调用的状态。因此,在使用递归时,应仔细考虑其效率和适用性。
鲜于言悠
2024/03/20
2750
c语言从入门到实战——函数递归
【C语言基础】:函数递归详解
函数递归指的是在函数内部调用自身的过程。 具体而言,递归函数通过将一个问题分解为更小的、类似的子问题来解决问题。
爱喝兽奶的熊孩子
2024/04/10
1.2K0
【C语言基础】:函数递归详解
C 语言函数递归探秘:从基础概念到复杂问题求解的进阶之路
递归可以理解为一种分而治之的思想:将复杂问题拆分为若干规模更小但相似的子问题,直到可以直接解决。
学无止尽5
2024/11/29
2260
C 语言函数递归探秘:从基础概念到复杂问题求解的进阶之路
Go 函数式编程篇(五):递归函数及性能调优
很多编程语言都支持递归函数,所谓递归函数指的是在函数内部调用函数自身的函数,从数学解题思路来说,递归就是把一个大问题拆分成多个小问题,再各个击破,在实际开发过程中,某个问题满足以下条件就可以通过递归函数来解决:
学院君
2023/03/03
5040
Go 函数式编程篇(五):递归函数及性能调优
c语言之函数的本质和使用及递归函数
从今天开始,给大家分享c语言里面的函数本质及其使用;我估计大多读者看到这个,都认为c语言函数里面有啥可讲的,其实在学习过程中千万不要小看每一个知识点,因为每一个小的知识点都是给你在做项目之前打牢基础,很多人肯定会遇到过这种情况,在做项目写代码的时候,诶!用什么方法才能实现我要的功能以及这种写法怎样表示,甚至一些基础的语法错误都会有(严重的话,一些最为基本的错误都解决不了,发现不了。),归根到底还是基础不牢,其实这样做起项目来比较痛苦的(不过这会让你注视到c语言功底的重要性了)。好了,废话就不多说了,开始今天的主题分享!
用户6280468
2022/03/21
7940
【C语言】函数递归总结
上述就是一个简单的递归程序,只不过上面的递归只是为了演示递归的基本形式,不是为了解决问题,代码最终也会陷入死递归导致栈溢出(Stackoverflow)。
用户11290673
2024/09/25
1010
【C语言】函数递归总结
告别递归,从零开始一文学会递归解题
递归是算法中一种非常重要的思想,应用也很广,小到阶乘,再在工作中用到的比如统计文件夹大小,大到 Google 的 PageRank 算法都能看到,也是面试官很喜欢的考点
五分钟学算法
2019/12/05
6380
C语言:函数递归
递归的思想: 把⼀个⼤型复杂问题层层转化为⼀个与原问题相似,但规模较小的⼦问题来求解;直到⼦问题不能再被拆分,递归就结束了。所以递归的思考⽅式就是把⼤事化小的过程。
小陈在拼命
2024/02/17
2170
C语言:函数递归
C函数与递归
在add函数头中,标明了函数的返回值类型为int,说明这个函数被调用后将返回一个int类型的结果。
WuShF
2023/03/07
3770
C函数与递归
【C语言】函数递归
递归是学习C语言函数绕不开的一个话题,那什么是递归呢? 递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。 写一个史上最简单的C语言递归代码:
zxctscl
2024/09/29
1580
【C语言】函数递归
【C 语言篇】形参实参密钥与递归魔法之门:C 语言编程中开启算法奥秘的奇妙旅程
编程中,形参是函数定义时的占位符,实参是调用时传递的具体值。递归通过函数自我调用解决问题,理解它们的关系有助于写出高效、健壮的代码。 本文我们主要来介绍形参 实参 和递归
意疏
2024/12/26
1300
c语言函数递归与迭代详解(含青蛙跳台阶问题详解)
1.递归是什么? 递归是学习C语言函数绕不开的一个话题,那什么是递归呢? 递归其实是一种解决问题的方法,在C语言中,递归就是函数自己调用自己。 这里有一个极其简单的递归代码:
fhvyxyci
2024/09/24
1410
c语言函数递归与迭代详解(含青蛙跳台阶问题详解)
相关推荐
完全理解C语言函数
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档