函數的遞歸調用及實例 4.2.6-主講金紅 內蒙古建筑職業(yè)_第1頁
函數的遞歸調用及實例 4.2.6-主講金紅 內蒙古建筑職業(yè)_第2頁
函數的遞歸調用及實例 4.2.6-主講金紅 內蒙古建筑職業(yè)_第3頁
函數的遞歸調用及實例 4.2.6-主講金紅 內蒙古建筑職業(yè)_第4頁
函數的遞歸調用及實例 4.2.6-主講金紅 內蒙古建筑職業(yè)_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

函數的遞歸調用及實例主講教師:金紅內蒙古建筑職業(yè)技術學院4.2.6CONTENTS目錄PART01函數的遞歸調用及實例01函數的遞歸調用及實例intf(intx){inty,z;z=f(y);//在執(zhí)行f函數過程中又要調用f函數

return(2*z);}

在調用一個函數的過程中,又出現直接或間接地調用該函數本身,稱為函數的遞歸調用。定義函數的遞歸調用及實例函數的遞歸調用及實例intf(intx){inty,z;……

z=f(y);…….return(2*z);}intf1(intx){inty,z;……

z=f2(y);…….return(2*z);}intf2(intt){inta,c;……

c=f1(a);…….return(3+c);}f()調f調f2調f1f1()f2()函數的遞歸調用及實例

有5個人坐在一起,問第5個人多少歲?他說比第4個人大2歲。問第4個人歲數,他說比第3個人大2歲。問第3個人,又說比第2個人大2歲。問第2個人,說比第1個人大2歲。最后問第1個人,他說是10歲。請問第5個人多大?例age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10用數學公式表述如下:age(n)=10(n=1)age(n-1)+2(n>1)函數的遞歸調用及實例age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10age(5)=18age(4)=16age(2)=12age(3)=14A求解兩個階段:第一階段回推、第二階段遞推。B遞推結束的終止條件:第1個人10歲函數的遞歸調用及實例程序如下#include<stdio.h>intmain(){ intage(intn); //對age函數的聲明

printf("NO.5,age:%d\n",age(5)); //輸出第5個學生的年齡

return0;}intage(intn) //定義遞歸函數{ intc; //c用作存放函數的返回值的變量

if(n==1)

//如果n等于1

c=10;

//年齡為10

else

//如果n不等于1

c=age(n-1)+2;

//年齡是前一個學生的年齡加2(如第4個學生年齡是第3個學生年齡加2) return(c); //返回年齡}函數的遞歸調用及實例程序分析mainage(5)輸出age(5)age(n)n=5c=age(4)+2age(n)n=4c=age(3)+2age(n)n=3c=age(3)+2age(n)n=2c=age(1)+2age(n)n=1c=10age(5)=18age(4)=16age(3)=14age(2)=12age(1)=10intage(intn){ intc;

if(n==1)

c=10;

else

c=age(n-1)+2; return(c);}c=age(1)+2遞歸的終結條件:n=0或n=1函數的遞歸調用及實例

求n的階乘例#include<stdio.h>intfac(intn){intf;if(n<0)printf("n<0,dataerror!");elseif(n==0||n==1)f=1;elsef=fac(n-1)*n;return(f);}main(){intn,y;printf("Inputaintegernumber:");scanf("%d",&n);

y=fac(n);printf("%d!=%15d",n,y);}

溫馨提示

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

最新文檔

評論

0/150

提交評論