函数的递归调用及实例 4.2.6-主讲金红 内蒙古建筑职业_第1页
函数的递归调用及实例 4.2.6-主讲金红 内蒙古建筑职业_第2页
函数的递归调用及实例 4.2.6-主讲金红 内蒙古建筑职业_第3页
函数的递归调用及实例 4.2.6-主讲金红 内蒙古建筑职业_第4页
函数的递归调用及实例 4.2.6-主讲金红 内蒙古建筑职业_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

函数的递归调用及实例主讲教师:金红内蒙古建筑职业技术学院4.2.6CONTENTS目录PART01函数的递归调用及实例01函数的递归调用及实例intf(intx){inty,z;z=f(y);//在执行f函数过程中又要调用f函数

return(2*z);}

在调用一个函数的过程中,又出现直接或间接地调用该函数本身,称为函数的递归调用。定义函数的递归调用及实例函数的递归调用及实例intf(intx){inty,z;……

z=f(y);…….return(2*z);}intf1(intx){inty,z;……

z=f2(y);…….return(2*z);}intf2(intt){inta,c;……

c=f1(a);…….return(3+c);}f()调f调f2调f1f1()f2()函数的递归调用及实例

有5个人坐在一起,问第5个人多少岁?他说比第4个人大2岁。问第4个人岁数,他说比第3个人大2岁。问第3个人,又说比第2个人大2岁。问第2个人,说比第1个人大2岁。最后问第1个人,他说是10岁。请问第5个人多大?例age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10用数学公式表述如下:age(n)=10(n=1)age(n-1)+2(n>1)函数的递归调用及实例age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10age(5)=18age(4)=16age(2)=12age(3)=14A求解两个阶段:第一阶段回推、第二阶段递推。B递推结束的终止条件:第1个人10岁函数的递归调用及实例程序如下#include<stdio.h>intmain(){ intage(intn); //对age函数的声明

printf("NO.5,age:%d\n",age(5)); //输出第5个学生的年龄

return0;}intage(intn) //定义递归函数{ intc; //c用作存放函数的返回值的变量

if(n==1)

//如果n等于1

c=10;

//年龄为10

else

//如果n不等于1

c=age(n-1)+2;

//年龄是前一个学生的年龄加2(如第4个学生年龄是第3个学生年龄加2) return(c); //返回年龄}函数的递归调用及实例程序分析mainage(5)输出age(5)age(n)n=5c=age(4)+2age(n)n=4c=age(3)+2age(n)n=3c=age(3)+2age(n)n=2c=age(1)+2age(n)n=1c=10age(5)=18age(4)=16age(3)=14age(2)=12age(1)=10intage(intn){ intc;

if(n==1)

c=10;

else

c=age(n-1)+2; return(c);}c=age(1)+2递归的终结条件:n=0或n=1函数的递归调用及实例

求n的阶乘例#include<stdio.h>intfac(intn){intf;if(n<0)printf("n<0,dataerror!");elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intn,y;printf("Inputaintegernumber:");scanf("%d",&n);

y=fac(n);printf("%d!=%15d",n,y);}

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论