资源描述:
《习题课(一)(函数递归调用).ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、习题课(二)10.2递归函数10.2.1程序解析10.2.2递归函数基本概念10.2.3递归程序设计10.2.1程序解析例10-3用递归函数求n!。#includedoublefact(intn);intmain(void){intn;scanf("%d",&n);printf("%f",fact(n));return0;}doublefact(intn)/*函数定义*/{doubleresult;if(n==1
2、
3、n==0)/*递归出口*/result=1;elseresult=n*fac
4、t(n-1);returnresult;}10.2.2递归函数基本概念递推法与递归法求阶乘递推法n!=1*2*3*....*nfor(result=1,i=1;i<=n;i++)result=result*i;递归法递归定义n!=n*(n-1)!(n>1)n!=1(n=0,1)递归函数fact(n)递归法源之于函数的嵌套调用递归法源之于函数的嵌套调用话说:师傅要做4的阶乘(fact4),交给老大去完成。师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}递归法源之于函数的
5、嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大想:如果老二能够帮我计算出3的阶乘(fact3),那么我老大设计函数就是:intfact4(){return4*fact3();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*
6、fact3();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fact3();}老二想:如果老三能够帮我计算出2的阶乘(fact2),那么我老二设计函数就是:intfact3(){return3*fact2();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fa
7、ct3();}老二设计的函数是:intfact3(){return3*fact2();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fact3();}老二设计的函数是:intfact3(){return3*fact2();}老三想:如果老四能够帮我计算出1的阶乘(fact1),那么我老三设计函数就是:intfact2(){return2*fact1();}递归法源之于函数的嵌套调用师傅
8、的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fact3();}老二设计的函数是:intfact3(){return3*fact2();}老三设计的函数是:intfact2(){return2*fact1();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fact3();}老二设计的函数是:i
9、ntfact3(){return3*fact2();}老三设计的函数是:intfact2(){return2*fact1();}老四想:如果小妹能够帮我计算出0的阶乘(fact0),那么我老四设计函数就是:intfact1(){return1*fact0();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fact3();}老二设计的函数是:intfact3(){return3*fact
10、2();}老三设计的函数是:intfact2(){return2*fact1();}老四设计的函数是:intfact1(){return1*fact0();}递归法源之于函数的嵌套调用师傅的调用程序是:intmain(){printf(“4!=%d”,fact4());}老大设计的函数是:intfact4(){return4*fact3();}老二设计的函数是:intfact3(){return3*