資源描述:
《習題課(一)(函數(shù)遞歸調(diào)用).ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫。
1、習題課(二)10.2遞歸函數(shù)10.2.1程序解析10.2.2遞歸函數(shù)基本概念10.2.3遞歸程序設計10.2.1程序解析例10-3用遞歸函數(shù)求n!。#includedoublefact(intn);intmain(void){intn;scanf("%d",&n);printf("%f",fact(n));return0;}doublefact(intn)/*函數(shù)定義*/{doubleresult;if(n==1
2、
3、n==0)/*遞歸出口*/result=1;elseresult=n*fac
4、t(n-1);returnresult;}10.2.2遞歸函數(shù)基本概念遞推法與遞歸法求階乘遞推法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)遞歸函數(shù)fact(n)遞歸法源之于函數(shù)的嵌套調(diào)用遞歸法源之于函數(shù)的嵌套調(diào)用話說:師傅要做4的階乘(fact4),交給老大去完成。師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}遞歸法源之于函數(shù)的
5、嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大想:如果老二能夠幫我計算出3的階乘(fact3),那么我老大設計函數(shù)就是:intfact4(){return4*fact3();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*
6、fact3();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fact3();}老二想:如果老三能夠幫我計算出2的階乘(fact2),那么我老二設計函數(shù)就是:intfact3(){return3*fact2();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fa
7、ct3();}老二設計的函數(shù)是:intfact3(){return3*fact2();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fact3();}老二設計的函數(shù)是:intfact3(){return3*fact2();}老三想:如果老四能夠幫我計算出1的階乘(fact1),那么我老三設計函數(shù)就是:intfact2(){return2*fact1();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅
8、的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fact3();}老二設計的函數(shù)是:intfact3(){return3*fact2();}老三設計的函數(shù)是:intfact2(){return2*fact1();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fact3();}老二設計的函數(shù)是:i
9、ntfact3(){return3*fact2();}老三設計的函數(shù)是:intfact2(){return2*fact1();}老四想:如果小妹能夠幫我計算出0的階乘(fact0),那么我老四設計函數(shù)就是:intfact1(){return1*fact0();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fact3();}老二設計的函數(shù)是:intfact3(){return3*fact
10、2();}老三設計的函數(shù)是:intfact2(){return2*fact1();}老四設計的函數(shù)是:intfact1(){return1*fact0();}遞歸法源之于函數(shù)的嵌套調(diào)用師傅的調(diào)用程序是:intmain(){printf(“4!=%d”,fact4());}老大設計的函數(shù)是:intfact4(){return4*fact3();}老二設計的函數(shù)是:intfact3(){return3*