(6.29)--第28课(6.4节-递归函数)C语言程序设计.ppt
《(6.29)--第28课(6.4节-递归函数)C语言程序设计.ppt》由会员分享,可在线阅读,更多相关《(6.29)--第28课(6.4节-递归函数)C语言程序设计.ppt(20页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、递归函数函数函数的嵌套调用函数的嵌套调用l不允许嵌套定义函数,函数间的关系是平行的、独立的l允许嵌套调用,即在调用某函数过程中又调用另一函数main()main()调用函数调用函数a a结束结束a a函数函数b b函数函数调用函数调用函数b b【例1:】求三个数中最大数和最小数的差值#include#include int dif(int x,int y,int int dif(int x,int y,int z);z);int max(int x,int y,int int max(int x,int y,int z);z);int min(int x,int y,int int min(i
2、nt x,int y,int z);z);void main()void main()int a,b,c,d;int a,b,c,d;scanf(%d%d%d,&a,&b,&c);scanf(%d%d%d,&a,&b,&c);d=dif(a,b,c);d=dif(a,b,c);printf(Max-Min=%dn,d);printf(Max-Min=%dn,d);int dif(int x,int y,int z)int dif(int x,int y,int z)return return max(x,y,z)max(x,y,z)-min(x,y,z)min(x,y,z);int max(i
3、nt x,int y,int z)int max(int x,int y,int z)int r;int r;r=xy?x:y;r=xy?x:y;return(rz?r:z);return(rz?r:z);int min(int x,int y,int z)int min(int x,int y,int z)int r;int r;r=xy?x:y;r=xy?x:y;return(rz?r:z);return(r1#include int age(int n)int c;if(n=1)c=10;else c=2+age(n-1);return(c);void main()printf(“%d
4、n”,age(5);递归的本质递归的本质l将大问题的求解转化为较小问题的求解l持续不断的分解过程最终将问题化简成一个最基本的形式(该形式是一个已知解)条件成立,进行递归条件成立,进行递归 l用用ifif语句控制语句控制 条件不成立,结束递归条件不成立,结束递归解决无终止递归调用的方法是:确定好结束递归的条件【例3:】用递归方法计算n!分析4!=4*3*2*14!=4*3!3!=3*2!.递归公式n!n!=1 1 (n=0n=0或或1 1)n*n*(n-1)!(n-1)!(n1n1)#include long fac(int n)long f;if(n=0|n=1)f=1;else f=n*fa
5、c(n-1);return f;void main()printf(nt4!=%ldn,fac(4);f=fac(4);n=4if(n=0|n=1)f=1;else f=n*fac(n-1);fac(n-1);return(f)n=3if(n=0|n=1)f=1;else f=n*fac(n-1);fac(n-1);return(f)n=2if(n=0|n=1)f=1;else f=n*fac(n-1);fac(n-1);return(f)n=1if(n=0|n=1)f=1f=1;else f=n*fac(n-1);return(f)设设n=4n=44!递归结束条件递归结束条件244*3!6*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 6.29 28 6.4 递归 函数 语言程序设计
限制150内