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

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

3天内不再提示

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

电子工程师 ? 来源:未知 ? 作者:李倩 ? 2018-11-12 15:06 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

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

举个例子:从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?"从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?'从前有座山,山里有座庙,庙里有个老和尚,正在给小和尚讲故事呢!故事是什么呢?……'"

语法格式如下:

voidrecursion()

{ statements; ... ... ... recursion(); /* 函数调用自身 */ ... ... ...

}

intmain()

{ recursion();

}

流程图:

C语言支持递归,即一个函数可以调用其自身。但在使用递归时,程序员需要注意定义一个从函数退出的条件,否则会进入死循环。

递归函数在解决许多数学问题上起了至关重要的作用,比如计算一个数的阶乘、生成斐波那契数列,等等。

数的阶乘

下面的实例使用递归函数计算一个给定的数的阶乘:

#includedoublefactorial(unsignedinti)

{ if(i <= 1) ? { ? ? ?return1;

} returni * factorial(i - 1);

}

intmain()

{ inti = 15;

printf("%d 的阶乘为 %f ", i, factorial(i));

return0;

}

当上面的代码被编译和执行时,它会产生下列结果:

15的阶乘为1307674368000.000000

斐波那契数列

下面的实例使用递归函数生成一个给定的数的斐波那契数列:

#includeintfibonaci(inti)

{ if(i == 0) { return0;

} if(i == 1) { return1;

} returnfibonaci(i-1) + fibonaci(i-2);

}intmain()

{ inti;

for(i = 0; i < 10; i++) ? ?{ ? ? ? printf("%d ", fibonaci(i));

} return0;

}

当上面的代码被编译和执行时,它会产生下列结果:

0112358132134

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

    关注

    180

    文章

    7633

    浏览量

    142178
  • 函数
    +关注

    关注

    3

    文章

    4385

    浏览量

    65155
  • 递归
    +关注

    关注

    0

    文章

    29

    浏览量

    9199

原文标题:C语言中的递归

文章出处:【微信号:c-stm32,微信公众号:STM32嵌入式开发】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    快速掌握Python的递归函数与匿名函数调用

    好就容易画虎不成反类犬,  b) Python中使用lambda关键字来创建匿名函数。所谓匿名,即不再使用def这种标准形式定义函数,需要
    发表于 07-19 16:22

    Labview递归函数的使用案例

    Labview递归函数的使用案例,简单的1+2+3...+100求和,简单易懂,充分理解递归函数的思想
    发表于 10-09 09:37

    matlab自定义函数调用的方法

    matlab自定义函数调用的方法 命令文件/函数文件+ 函数文件 - 多
    发表于 11-29 13:14 ?88次下载

    C++教程之函数递归调用

    C++教程之函数递归调用 执行函数 f 的过程中,又要调用 f 函数本身,称为函数
    发表于 05-15 18:00 ?35次下载

    C++的实验教程之函数递归算法资料免费下载

    函数递归算法 1.范例:求组合数, 一、实验目的1. 学会解决简单的递归算法。2. 掌握函数的嵌套调用。
    发表于 01-29 10:51 ?2次下载
    C++的实验教程之<b class='flag-5'>函数</b>的<b class='flag-5'>递归</b>算法资料免费下载

    C语言函数的实验详细资料说明

    实验目的和要求(1)掌握C语言函数定义方法函数的声明及函数的调用方法。(2)掌握
    发表于 12-06 08:00 ?4次下载
    C语言<b class='flag-5'>函数</b>的实验详细资料说明

    PyTorch中使用ReLU激活函数的例子

    PyTorch已为我们实现了大多数常用的非线性激活函数,我们可以像使用任何其他的层那样使用它们。让我们快速看一个PyTorch中使用ReLU激活函数的例子:
    的头像 发表于 07-06 15:27 ?2823次阅读

    C语言-内联函数递归函数、指针函数

    这篇文章介绍C语言的内联函数递归函数函数指针、指针函数、局部地址、const关键字、extern关键字等知识点;这些知识点在实际项目开发
    的头像 发表于 08-14 10:03 ?2053次阅读

    C语言如何获得自身定义函数的实际地址和大小吗

    我们先看地址。C语言无法定义函数外标签,函数内标签从使用到访问处处受限,我们好像只剩函数名可以用。但函数名表达式未必等同于
    发表于 12-02 10:52 ?1306次阅读

    Python-函数的进阶与递归

    程序开发中,有时候,会希望一个函数执行结束后,告诉调用者 **一个结果** ,以便调用者针对结果作后续的处理,返回值是函数完成工作后,最后给调用者的一个结果,
    的头像 发表于 02-16 15:19 ?1058次阅读
    Python-<b class='flag-5'>函数</b>的进阶与<b class='flag-5'>递归</b>

    Python支持递归函数

    Python支持递归函数——即直接或间接地调用自身以进行循环的函数递归是颇为高级的话题,并且它在Python中相对少见。然而,它是一项应该
    的头像 发表于 02-21 14:28 ?858次阅读

    函数递归-3

    程序调用自身的编程技巧称为递归(recursion)。递归作为一种算法程序设计语言中广泛应用。一个过程或函数在其
    的头像 发表于 02-21 15:57 ?888次阅读

    什么是Python的递归函数

    递归函数必须有终止条件。编程中,函数的调用要占用名叫栈(stack)的内存空间。调用函数时,程序会将相关的数据存储到计算机的栈里。
    的头像 发表于 02-23 10:25 ?2200次阅读

    python定义函数与调用函数的顺序

    定义函数与调用函数的顺序 函数定义后,本身是不会自动执行的,只有在被调用后,函数才会被执行,得
    的头像 发表于 10-04 17:17 ?2196次阅读

    关于C语言中的递归

    递归指的是函数定义中使函数
    发表于 02-26 10:34 ?706次阅读
    关于C语言中的<b class='flag-5'>递归</b>