博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【学习笔记】【C语言】递归
阅读量:5097 次
发布时间:2019-06-13

本文共 1188 字,大约阅读时间需要 3 分钟。

一、基本内容:

C语言中的函数可以递归调用,即:可以直接(简单递归)或间接(间接递归)地自己调自己。
要点:
1、C语言函数可以递归调用。
2、可以通过直接或间接两种方式调用。目前只讨论直接递归调用。

二、递归条件

采用递归方法来解决问题,必须符合以下三个条件:
1、可以把要解决的问题转化为一个新问题,而这个新的问题的解决方法仍与原来的解决方法相同,只是所处理的对象有规律地递增或递减。
说明:解决问题的方法相同,调用函数的参数每次不同(有规律的递增或递减),如果没有规律也就不能适用递归调用。
2、可以应用这个转化过程使问题得到解决。
说明:使用其他的办法比较麻烦或很难解决,而使用递归的方法可以很好地解决问题。
3、必定要有一个明确的结束递归的条件。
说明:一定要能够在适当的地方结束递归调用。不然可能导致系统崩溃。

三、代码

1 /* 2 设计一个函数,用来计算b的n次方 3   4  递归的2个条件: 5  1.函数自己调用自己 6  2.必须有个明确的返回值 7 */ 8 #include 
9 int pow2(int b, int n);10 11 int main()12 {13 int c = pow2(3, 2);14 15 printf("%d\n", c);16 return 0;17 }18 19 /*20 pow2(b, 0) == 121 pow2(b, 1) == b == pow2(b, 0) * b22 pow2(b, 2) == b*b == pow2(b, 1) * b23 pow2(b, 3) == b*b*b == pow2(b, 2) * b24 25 1> n为0,结果肯定是126 2> n>0,pow2(b, n) == pow2(b, n-1) * b27 */28 29 int pow2(int b, int n)30 {31 if (n <= 0) return 1;32 return pow2(b, n-1) * b;33 }34 35 /*36 int pow2(int b, int n)37 {38 // 用来保存计算结果39 int result = 1;40 41 42 //result *= b;43 //result *= b;44 //result *= b;45 //result *= b;46 //....47 48 //n次49 50 51 for (int i = 0; i

 

转载于:https://www.cnblogs.com/dssf/p/4624449.html

你可能感兴趣的文章
php编译安装configure完全配置够日常所用功能
查看>>
marquee 标签的使用详情
查看>>
js设计模式总结5
查看>>
12306需求分析
查看>>
wpf数据自动树结构
查看>>
sql语句+model.id+
查看>>
北漂中~
查看>>
Learning Cocos2d-x for XNA(7)——让Sprite动起来
查看>>
Oracle部署安装
查看>>
制作Java安装程序
查看>>
学习before和after伪元素
查看>>
L1-039. 古风排版
查看>>
MSSQL → 06:T-SQL语言基础
查看>>
JavaScript中valueOf函数与toString方法深入理解
查看>>
Python(二十九)
查看>>
SQLite可视化管理工具汇总
查看>>
js 清空html input file的值
查看>>
activeInHierarchy 与 activeSelf 的区别
查看>>
44. Wildcard Matching(dp、动态规划)
查看>>
mysql写注释的几种方法
查看>>