c語言--函數(shù)的遞歸調(diào)用PPT課件_第1頁
c語言--函數(shù)的遞歸調(diào)用PPT課件_第2頁
c語言--函數(shù)的遞歸調(diào)用PPT課件_第3頁
c語言--函數(shù)的遞歸調(diào)用PPT課件_第4頁
c語言--函數(shù)的遞歸調(diào)用PPT課件_第5頁
已閱讀5頁,還剩11頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

.,1,張福祥主編遼寧大學(xué)出版社,C語言程序設(shè)計,.,2,我們先看這樣一個例子:,說有一只調(diào)皮的小猴子,摘了一堆水果,第一天吃了水果的一半,又多吃了一個;第二天吃了剩下水果的一半,又多吃了一個;依次類推.到第十天,發(fā)現(xiàn)只剩下了1個水果,請問這只猴子到底摘了多少個水果?,.,3,一、函數(shù)遞歸的特點(diǎn),5.4函數(shù)遞歸調(diào)用,1、定義:調(diào)用一個函數(shù)時直接或間接調(diào)用自身,稱之為函數(shù)的遞歸。2、一個問題能夠成為遞歸必須具備的條件是:,許多數(shù)學(xué)函數(shù)都是用遞歸的形式定義的:,.,4,1.直接遞歸調(diào)用:函數(shù)直接調(diào)用本身,二、程序中的遞歸方式,2.間接遞歸調(diào)用:函數(shù)間接調(diào)用本身,.,5,說明C語言對遞歸函數(shù)的自調(diào)用次數(shù)沒有限制必須有遞歸結(jié)束條件,intf(x)intx;inty,z;z=f(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);,.,6,思考如下問題:,例1:有5個人坐在一起,問第5個人多少歲,他說比第4個人大2歲;問第4個人歲數(shù),他說比第3個人大2歲;問第3個人,又說比第2個大2歲;問第2個人,說比第1個人大2歲;最后問第1個人,他說他10歲;請問第5個人多大?,比她大2歲,比她大2歲,比她大2歲,比她大2歲,我10歲,.,7,age(5)=16+2=18,age(4)=14+2=16,age(3)=12+2=14,age(2)=10+2=12,設(shè)age表示年齡,則有如下:,age(5)=age(4)+2,age(4)=age(3)+2,age(3)=age(2)+2,age(2)=age(1)+2,age(1)=10,.,8,main()printf(“%d”,age(5);,age(5),.,9,例2:漢諾塔(Hanoi)問題,問題:將A塔上n個盤子移至C(借助于B)。移動時,保證三個塔始終是大盤在下,小盤在上,并且每次只能移動一個盤子。,A,n個盤子,.,10,必須用遞歸方式解決,1)先將A塔n1個盤子借助于C移至B上,2)將A上剩下的一個移至C上.,3)將B上n1個盤子借助于A移至C上.,可以看到:1)、3)為同一問題,都為n1個盤子借助于一個空塔移至另一塔上。,.,11,例Hanoi問題,.,12,voidmove(chargetone,charputone)printf(%c-%cn,getone,putone);voidhanoi(intn,charA,charB,charC)if(n=1)move(A,C);elsehanoi(n-1,A,C,B);move(A,C);hanoi(n-1,B,A,C);main()intn;scanf(%d,程序如下:,.,13,inputthenumberofdiskes:3Thesteptomoving3diskes:ACABCBACBABCAC,運(yùn)行情況如下:,.,14,move(getone,putone)表示從getone塔移一個盤子至putone塔,hanoi(n,one,two,three)表示n個盤子從one塔借助于two塔(空)移至three塔,調(diào)用時塔用字符常量A,B,C表示。,在程序中有兩個函數(shù):,.,15,小結(jié),1.函數(shù)遞歸的定義,2.函數(shù)遞歸的特點(diǎn),3.函數(shù)遞歸調(diào)用的方式,本節(jié)課主要介紹的內(nèi)容:,.,16,上機(jī)作業(yè):,說有一只調(diào)皮的小猴子,摘了一堆水果,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論