函数的嵌套与递归调用
《函数的嵌套与递归调用》由会员分享,可在线阅读,更多相关《函数的嵌套与递归调用(8页珍藏版)》请在装配图网上搜索。
1、函数的嵌套与递归调用教学内容函数的嵌套调用函数的递归调用函数的定义与使用函数的嵌套调用C规定:函数定义不可嵌套,但可以嵌套调用函数main()调用函数a结束a函数b函数调用函数b函数嵌套调用应用例1:计算s=(1*1)!+(2*2)!+(3*3)!+(4*4)!+(5*5!)分析:定义两个函数,一个是用来计算平方值的函数w1,另一个是用来计算阶乘值的函数w2。主函数先调w1计算出平方值,再在w1中以平方值为实参,调用 w2计算其阶乘值,然后返回w1,再返回主函数,在循环程序中计算累加和。函数的递归调用定义:函数直接或间接的调用自身叫函数的递归调用int f(int x)int y,z;z=f(
2、y);.return(2*z);int f1(int x)int y,z;z=f2(y);.return(2*z);int f2(int t)int a,c;c=f1(a);.return(3+c);f()调f调f2调f1f1()f2()函数递归调用应用例2:用递归法计算n!1 (n=0,1)n!=n*(n-1)!(n1)例3:Hanoi(汉诺)塔问题。这是一个古典的数学问题,是一个只有用递归方法(而不可能用其他方法)解决的问题。问题是这样的:古代有一个梵塔,塔内有3个座A、B、C,开始时A座上有64个盘子,盘子大小不等,大的在下,小的在上(如图)。有一个老和尚想把这64个盘子从A座移到C座,但每次只允许移动一个盘,且在移动过程中在3个座上都始终保持大盘在下,小盘在上。在移动过程中可以利用B座,要求编程序打印出移动的步骤。1.C语言中,函数可以嵌套调用,不可以嵌套定义 2.函数递归调用指对函数自身的调用,算法描述为a.if(递归终止条件)return(条件终止时的值)b.else return 递归公式1.求两个数的最大公约数(用递归调用)2.求两个数的最小公倍数(用嵌套调用)
- 温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。