



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
本文格式為Word版,下載可任意編輯——C語言函數(shù)的遞歸和調(diào)用C語言函數(shù)的遞歸和調(diào)用
C語言中的函數(shù)可以遞歸調(diào)用,即:可以直接簡(jiǎn)樸遞歸或間接間接遞歸地自己調(diào)自己。下面是我為大家整理的C語言函數(shù)的遞歸和調(diào)用,接待參考~
一、要點(diǎn):
1、C語言函數(shù)可以遞歸調(diào)用。
2、可以通過直接或間接兩種方式調(diào)用。目前只議論直接遞歸調(diào)用。
二、遞歸條件
采用遞歸方法來解決問題,務(wù)必符合以下三個(gè)條件:
1、可以把要解決的問題轉(zhuǎn)化為一個(gè)新問題,而這個(gè)新的問題的解決方法仍與原來的解決方法一致,只是所處理的對(duì)象有規(guī)律地遞增或遞減。
說明:解決問題的方法一致,調(diào)用函數(shù)的參數(shù)每次不同有規(guī)律的遞增或遞減,假設(shè)沒有規(guī)律也就不能適用遞歸調(diào)用。
2、可以應(yīng)用這個(gè)轉(zhuǎn)化過程使問題得到解決。
說明:使用其他的`手段對(duì)比麻煩或很難解決,而使用遞歸的方法可以很好地解決問題。
3、必定要有一個(gè)明確的終止遞歸的條件。
說明:確定要能夠在適當(dāng)?shù)牡胤浇K止遞歸調(diào)用。不然可能導(dǎo)致系統(tǒng)崩潰。
三、遞歸實(shí)例
例:使用遞歸的方法求n!
當(dāng)n1時(shí),求n!的問題可以轉(zhuǎn)化為n*n-1!的新問題。
譬如n=5:
第一片面:5*4*3*2*1n*n-1!
其次片面:4*3*2*1n-1*n-2!
第三片面:3*2*1n-2n-3!
第四片面:2*1n-3n-4!
第五片面:1n-5!5-5=0,得到值1,終止遞歸。
源程序:
facintn
intt;
ifn==1||n==0return1;
else
t=n*facn-1;
returnt;
main
intm,y;
printf“Enterm:”;
scanf“%d”,m;
ifm0printf“InputdataError!n”;
else
y=facm;
printf“n%d!=%dn”,m,y;
四、遞歸說明
1、當(dāng)函數(shù)自己調(diào)用自己時(shí),系統(tǒng)將自動(dòng)把函數(shù)中當(dāng)前的變量和形參暫時(shí)留存起來,在新一輪的調(diào)用過程中,系統(tǒng)為新調(diào)用的函數(shù)所用到的變量和形參開發(fā)另外的存儲(chǔ)單元內(nèi)存空間。每次調(diào)用函數(shù)所使用的變量在不同的內(nèi)存空間。
2、遞歸調(diào)用的層次越多,同名變量的占用的存儲(chǔ)單元也就越多。確定要記住,每次函數(shù)的調(diào)用,系統(tǒng)都會(huì)為該函數(shù)的變量開發(fā)新的內(nèi)存空間。
3、當(dāng)本次調(diào)用的函數(shù)運(yùn)行終止時(shí),系統(tǒng)將釋放本次調(diào)用時(shí)所占用的內(nèi)存空間。程序的流程返回到上一層的調(diào)用點(diǎn),同時(shí)取得開初進(jìn)入該層時(shí),函數(shù)中的變量和形參所占用的內(nèi)存空間的數(shù)據(jù)。
4、全體遞歸問題都可以用非遞歸的方法來解決,但對(duì)于一些對(duì)比繁雜的遞歸問題用非遞歸的方法往往使程序變得特別繁雜難以讀懂,而函數(shù)的遞歸調(diào)用在解決這類問題時(shí)能使程序干脆領(lǐng)略有較好的可讀性;但由于遞歸調(diào)用過程中,系統(tǒng)要為每一層調(diào)用中的變量開發(fā)內(nèi)存空間、要記住每一層調(diào)用后的返回點(diǎn)、要增加大量額外的開銷,因此函數(shù)的遞歸調(diào)用通常會(huì)降低程序的運(yùn)行效率。
五、程序流程
facintn/*每次調(diào)用使用不同的參數(shù)*/
intt;/*每次調(diào)用都會(huì)為變量t開發(fā)不同的內(nèi)存空間*/
ifn==1||n==0/*當(dāng)?shù)弥具@些條件返回1*/
return1;
else
t=n*facn-1;/*每
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權(quán)】 ISO/IEC 23090-8:2025 EN Information technology - Coded representation of immersive media - Part 8: Network based media processing
- 企業(yè)設(shè)立分公司全面合作協(xié)議
- 學(xué)校暑假協(xié)議書范本大全
- 涉外車輛過戶法律效力協(xié)議書范本
- 水泥購買合同協(xié)議書范本
- 股權(quán)讓渡經(jīng)濟(jì)型合同范本
- 教師舞蹈培訓(xùn)協(xié)議書范本
- 《協(xié)議離婚心理干預(yù)與婚姻輔導(dǎo)合同》
- 餐飲業(yè)員工招聘與培訓(xùn)合同
- 車輛轉(zhuǎn)讓與過戶手續(xù)辦理專項(xiàng)服務(wù)合同
- 四川阿壩州公開招聘社區(qū)工作者考試高頻題庫帶答案2025年
- 北京市朝陽區(qū)2022-2023四年級(jí)下冊(cè)數(shù)學(xué)期末試題+答案
- 馬鈴薯脫毒種薯繁育技術(shù)
- 洪澇災(zāi)害災(zāi)區(qū)血吸蟲病防控應(yīng)急工作方案(2020年版)
- 帕金森病患者的睡眠障礙課件
- 埋針治療評(píng)分標(biāo)準(zhǔn)
- 病原學(xué)檢測(cè)陰性肺結(jié)核診斷流程T∕CHATA 008-2020
- 公文格式及公文處理(講稿)ppt課件
- 環(huán)境工程原理課程設(shè)計(jì)清水吸收二氧化硫過程填料吸收塔設(shè)計(jì)
- 廣東省大學(xué)生校外實(shí)踐教學(xué)基地
- 混凝土護(hù)欄技術(shù)交底
評(píng)論
0/150
提交評(píng)論