版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
模拟ATM工作流程函数递归调用和嵌套调用
问题导入
汉诺塔是一种古老的数学问题,是指在“A”柱上从下向上依次放着从大到小的一叠盘子,要把该柱上的盘子全部搬到指定的“C”柱,在搬运过程中,可以利用“B”柱来协助搬移,但每次只允许移动一个盘子,且在移动过程中始终保持大盘在下,小盘在上。试问怎样搬移盘子?最少需要搬几次才能把“A”柱上的全部盘子移至“C”柱?ABC
问题解决技术
需要用到函数的递归调用来解决这类问题。什么是函数的递归调用?函数递归调用:指的是在函数的过程中出现调用该函数本身的过程.即函数自己调用自己。
举例
有5个人坐在一起,问第五个人几岁?他说比第4个人大2岁。问第4个人,他说比第3个人大2岁。问第3个人,他说比第2个人大2岁。问第2个人,他说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人是多大。求第5个人的年龄age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10age(n)=10(n=1)age(n)=age(n-1)+2(n>1)
举例
#include<stdio.h>intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}main(){printf(“%d”,age(5));}运行结果:18age(5)=age(4)+2=age(2)+2=age(3)+2=age(1)+2=10age(2)=12age(4)=16age(3)=14age(5)=18
真题练一练
通过分析得出结论:func(n)=1(n=1)func(n)=func(n-1)*n(n>1)答案:1*2*3*4*5=120
嵌套调用
C语句不能嵌套定义函数,但可以嵌套调用函数。
也就是说在调用一个函数的过程中,又调用另一个函数。两层嵌套,其执行过程为:main函数调用a函数a函数b函数调用b函数结束
思考题
#include<stdio.h>intb(intx){return(x+1);}inta(intm,intn){if(m>n)return(m);elseb(5);}main(){intm=3,n=8,r;r=a(m,n);printf("%d\n",r);}想一想:输出结果是什么?输出结果是:6
真题练一练
从n个不同的元素中,每次取出k个不同的元素,不管其顺序合并成一组,称为组合.组合种数计箅公式如下..
Cnk=n!/((n-k)!*k!)1)定义函数fact(n)计算n!,类型double.2)定义函数cal(k,n),计算组合种数Cnk,类型double.要求调用fact(n)计算n!.3)定义函数main(),输入正整数n,输出n的所有组合数Cnk,要求调用函数cal(k,n).
真题练一练
#include<stdio.h>doublefact(intn){inti;doubles=1;for(i=1;i<=n;i++)s=s*i;returns;}doublecal(intk,intn){return(fact(n)/(fact(n-k)*fact(k)));}main(){intn,k;doublesum;scanf(“%d”,&n);for(k=1;k<=n;k++){sum=cal(k,n);printf(“.3f\n”,sum);}}
课后练一练
编写程序,输入一个正整数n,求下列算式的值:1+1
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 基层医疗卫生医防融合能力提升实施方案
- 闲置厂区果酒工坊项目可行性研究报告
- 市政管网配套项目文明施工方案
- 基层医疗卫生家庭医生签约服务方案
- 雨季施工管网工程文明施工方案
- 屋面排水改造防水方案
- 医疗建筑屋面防水方案
- 隧道施工安全培训课件
- 小学科学探索基地预约管理办法
- 碳中和技术专利布局全套教学课件
- TCERS0005-2020电力线路跨越电气化铁路施工防护技术规范
- GB/T 3464-2025机用和手用丝锥
- 2024年六西格玛黑带认证高级考试真题(含答案解析)
- 医疗废物法律法规课件
- 药店冬季促销活动方案
- 《电工(五级)理论知识考核要素细目表》
- 农产品质量安全法52课件
- CJ/T 308-2009水井用硬聚氯乙烯(PVC-U)管材
- 法律逻辑学考试题库及答案
- 乳腺癌临床路径
- 安徽省合肥市高新区2024-2025学年七年级上学期期中学业质量监测数学试卷(含简单答案)
评论
0/150
提交评论