C语言递归函数如何实现(c语言,开发技术)

时间:2024-05-06 00:42:19 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

一、递归的数学思想

递归是一种数学上分而自治的思想

递归需要有边界条件

  • 当边界条件不满足时,递归继续进行

  • 当边界条件满足时,递归停止

递归将大型复杂问题转化为与原问题相同但规模较小的问题进行处理。

二、递归函数

函数体内部可以调用自己

递归函数

  • 函数体中存在自我调用的函数

递归函数是递归的数学思想在程序设计中的应用

  • 递归函数必须有递归出口

  • 函数的无限递归将导致程序栈溢出而崩溃

三、递归函数设计技巧

递归模型的一般表示法

C语言递归函数如何实现

四、递归函数设计示例一

用递归的方法编写函数求字符串长度

C语言递归函数如何实现

代码如下:

#include<stdio.h>intstrlen_r(constchar*s){if(*s){return1+strlen_r(s+1);}else{return0;}}intmain(){printf("%d\n",strlen_r("abc"));printf("%d\n",strlen_r(""));return0;}

输出结果如下:

C语言递归函数如何实现

五、递归函数设计示例二

斐波拉契数列递归解法

1,1,2,3,5,8,13,21,...

C语言递归函数如何实现

代码如下:

#include<stdio.h>intfac(intn){if(n==1){return1;}elseif(n==2){return1;}else{returnfac(n-1)+fac(n-2);}return-1;}intmain(){printf("%d\n",fac(1));printf("%d\n",fac(2));printf("%d\n",fac(9));return0;}

输出结果如下:

C语言递归函数如何实现

六、递归函数设计示例三

汉诺塔问题

  • 将木块借助 B 柱由 A 柱移动到 C 柱

  • 每次只能移动一个木块

  • 只能出现小木块在大木块之上

C语言递归函数如何实现

汉诺塔问题分解

  • 将 n-1 个木块借助 C 柱由 A 柱移动到 B 柱

  • 将最底层的唯一木块直接移动到 C 柱

  • 将 n-1 个木块借助 A 柱由 B 柱移动到 C 柱

C语言递归函数如何实现

代码如下:

#include<stdio.h>voidhan_move(intn,chara,charb,charc){if(n==1){printf("%c-->%c\n",a,c);}else{han_move(n-1,a,c,b);han_move(1,a,b,c);han_move(n-1,b,a,c);}}intmain(){han_move(3,'A','B','C');return0;}

输出结果如下:

C语言递归函数如何实现

 </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
本文:C语言递归函数如何实现的详细内容,希望对您有所帮助,信息来源于网络。
上一篇:C#如何实现平衡查找树下一篇:

14 人围观 / 0 条评论 ↓快速评论↓

(必须)

(必须,保密)

阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18