函數(shù)的遞歸調(diào)用.ppt

函數(shù)的遞歸調(diào)用.ppt

ID:51456136

大小:1.53 MB

頁數(shù):17頁

時間:2020-03-23

函數(shù)的遞歸調(diào)用.ppt_第1頁
函數(shù)的遞歸調(diào)用.ppt_第2頁
函數(shù)的遞歸調(diào)用.ppt_第3頁
函數(shù)的遞歸調(diào)用.ppt_第4頁
函數(shù)的遞歸調(diào)用.ppt_第5頁
資源描述:

《函數(shù)的遞歸調(diào)用.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在教育資源-天天文庫

1、6.6函數(shù)的遞歸調(diào)用章節(jié)回顧1.以下正確的函數(shù)定義形式為:【】A.doublefun(intx,inty)B.doublefun(intx?;inty)C.doublefun(intx,inty)?;D.doublefun(intx,y)2.以下不正確的描述是:【】A.在C程序中,實參可以是常量、變量或表達式B.在C程序中,形參可以是常量、變量或表達式C.在C程序中,實參可以是任意類型D.形參應與其對應的實參在個數(shù)、類型、順序上保持一致3.在C程序中,用簡單變量作為實參時,它與對應的形參之間的數(shù)據(jù)傳遞方式為:【】A

2、.地址傳遞B.單向傳遞C.按用戶指定方式傳遞D.由實參傳遞給形參,再由形參傳回給實參4.在C程序中,函數(shù)的返回值的類型由:【】A.return語句中的表達式的類型決定B.調(diào)用該函數(shù)時的調(diào)用函數(shù)決定C.調(diào)用該函數(shù)時由系統(tǒng)臨時決定D.在定義該函數(shù)時由函數(shù)的類型決定ABBD主要內(nèi)容一、引入新問題二、函數(shù)遞歸概述三、漢諾塔問題四、課堂練習五、課程小結(jié)一、引入新問題五位學生坐成一排,學生之間不知道相互的年齡。老師問最后一名學生,即第5名學生,她和她前面這一排學生的年齡總和是多少?思考問題:12345你們年齡之和?你們年齡之和

3、?你們年齡之和?你們年齡之和?我們共37歲(27+10)我們共27歲(19+8)我們共19歲(10+9)我10歲你們年齡之和我們共46歲(37+9)遞歸公式二、函數(shù)遞歸概述1.遞歸的定義:調(diào)用一個函數(shù)時直接或間接調(diào)用自身,稱之為函數(shù)的遞歸。2.一個問題能夠成為遞歸必須具備的條件是:3.程序中的遞歸方式:直接遞歸調(diào)用:函數(shù)直接調(diào)用本身間接遞歸調(diào)用:函數(shù)間接調(diào)用本身后一部分與原始問題類似后一部分是原始問題的簡化說明C語言對遞歸函數(shù)的自調(diào)用次數(shù)沒有限制必須有遞歸結(jié)束條件intf(x)intx;{inty,z;……z=f(

4、y);……return(2*z);}直接調(diào)用間接調(diào)用intf1(x)intx;{inty,z;……z=f2(y);……return(2*z);}intf2(t)intt;{inta,c;……c=f1(a);……return(3+c);}用C語言解決上述思考題9歲8歲10歲9歲totalAge(5)=myAge+totalAge(4)totalAge(4)=myAge+totalAge(3)totalAge(3)=myAge+totalAge(2)totalAge(2)=myAge+totalAge(1)totalA

5、ge(4)=10+27=37totalAge(3)=8+19=27totalAge(2)=9+10=19totalAge(1)=myAge=10Main()調(diào)用子函數(shù)totalAge(5)=9+37=4610歲totalAge(1)=myAgevoidmain(){intm;printf("inputthestudent'snumber:");scanf("%d",&m);if(m<=0)printf("thenumberiserror");elseprintf("allstudent'sageis:%d",t

6、otalAge(m));}inttotalAge(intn){inttotal,myAge;printf("inputtotalnumber(%d)",n);printf("pleaseinputthe%dstudent'sage:",n);scanf("%d",&myAge);if(n>1)total=myAge+totalAge(n-1);elseif(n==1)total=myAge;printf("fromtotalnumber(%d)return%d",n,total);getch();retur

7、ntotal;}三、漢諾塔問題BC一個古典的數(shù)學問題:古代有一個梵塔,塔內(nèi)有3個座A、B、C,開始時A座上有64個盤子,盤子大小不等,大的在下,小的在上。有一個老和尚想把這64個盤子從A座移動到C座,每次只允許移動一個盤,且在移動過程中,在每個座上都始終保持大盤在下,小盤在上。在移動過程中可以利用B座,寫出移動步驟。An個盤子ABC動畫演示:分析3個盤子的情況:1.將A座上2個盤子移到B座(借助C);2.將A座上1個盤子移到C座;3.將B座上2個盤子移到C座(借助A)。其中第2步可以直接實現(xiàn)。第1、3步還需要遞歸分

8、解。ABCABCABC遞歸分解:第1步——將A座上2個盤子移到B座(借助C),分解為:1.1將A上一個盤子從A移到C;1.2將A上一個盤子從A移到B;1.3將C上一個盤子從C移到B。ABC1.1ABC1.2ABC1.3ABC3.第3步——將B座上2個盤子移到C座(借助A),分解為:3.1將B上一個盤子從B移到A;3.2將B上一個盤子從B移到C;3.3將A上一

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內(nèi)容,確認文檔內(nèi)容符合您的需求后進行下載,若出現(xiàn)內(nèi)容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。