嵌入式C程序設(shè)計(jì) 函數(shù)的遞歸調(diào)用(講義)_第1頁
嵌入式C程序設(shè)計(jì) 函數(shù)的遞歸調(diào)用(講義)_第2頁
嵌入式C程序設(shè)計(jì) 函數(shù)的遞歸調(diào)用(講義)_第3頁
嵌入式C程序設(shè)計(jì) 函數(shù)的遞歸調(diào)用(講義)_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

函數(shù)的遞歸調(diào)用遞歸調(diào)用:在調(diào)用一個(gè)函數(shù)的過程中又直接或間接地調(diào)用該函數(shù)本身。遞歸算法的思想:要解決某個(gè)問題,可以把這個(gè)問題分解成對m個(gè)子問題分別求解,如果子問題的規(guī)模仍然不夠小,則再劃分為m個(gè)子問題,如此遞歸的進(jìn)行下去,直到問題規(guī)模足夠小,很容易求出其解為止?!纠?-4】利用函數(shù)的遞歸調(diào)用求x的n次方?!竞喴治觥窟f歸有兩個(gè)階段,第一階段是“回推”,欲求x的n次方,回求x的n-1次方,再回求x的n-2次方……,當(dāng)回推到x的0次方時(shí),此時(shí)能夠得到x的0次方為1,就不再回推了;然后進(jìn)入第二階段“遞推”,由x的0次方開始,求x的1次方,x的2次方……,直到x的n次方。設(shè)變量表如表7-4所列。表7-4 例7-4的變量表變量名含義類型初值x底數(shù)int輸入n冪指數(shù)int輸入result計(jì)算結(jié)果int0函數(shù)表達(dá)式:F(n)=xn參考源代碼為/*例7-4,7-4.c*/#include<stdio.h>voidmain(?){doublexpower(doublex,intn);intn;doublex,result;scanf("%lf,%d",&x,&n);result=xpower(x,n);/*以表達(dá)式的方式調(diào)用函數(shù)xpower(?)*/printf("result=%lf\n",result);}doublexpower(doublex,intn){if(n<=0)return1;elsereturn(x*xpower(x,n-1));/*返回計(jì)算結(jié)果給主調(diào)函數(shù)*/}以求5的3次方為例,遞歸調(diào)用的過程如圖7-8所示。圖7-8例7-4函數(shù)遞歸調(diào)用分析圖遞歸是C語言的重要特點(diǎn)之一,遞歸的優(yōu)點(diǎn)就是程序結(jié)構(gòu)清晰,可讀性強(qiáng),而且容易用數(shù)學(xué)歸納法來證明算法的正確性,因此它為設(shè)計(jì)算法、調(diào)試程序帶來很大方便。遞歸的缺點(diǎn)是遞歸算法的運(yùn)行效率較低,無論是耗費(fèi)的計(jì)算時(shí)間還是占用的存儲空間都比非遞歸算法要多。須要說明的是,一個(gè)問題能用遞歸方法求解,必須符合兩個(gè)條件:第一,可將一個(gè)問題轉(zhuǎn)化為具有同樣解法的規(guī)模較小的問題;第二,必須有明確的結(jié)束條件。用遞歸調(diào)用實(shí)現(xiàn)intfun(intn){ if(x==0) { return1; } else { return(x*fun(x-1)); }}【融會貫通】有5個(gè)人坐在一起,問第5個(gè)人多少歲,他說比第4個(gè)人大2歲,問第4個(gè)人的歲數(shù),他說比第3個(gè)人大2歲,問第3個(gè)人的歲數(shù)

溫馨提示

  • 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)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論