




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
模擬ATM工作流程函數(shù)遞歸調用和嵌套調用
問題導入
漢諾塔是一種古老的數(shù)學問題,是指在“A”柱上從下向上依次放著從大到小的一疊盤子,要把該柱上的盤子全部搬到指定的“C”柱,在搬運過程中,可以利用“B”柱來協(xié)助搬移,但每次只允許移動一個盤子,且在移動過程中始終保持大盤在下,小盤在上。試問怎樣搬移盤子?最少需要搬幾次才能把“A”柱上的全部盤子移至“C”柱?ABC
問題解決技術
需要用到函數(shù)的遞歸調用來解決這類問題。什么是函數(shù)的遞歸調用?函數(shù)遞歸調用:指的是在函數(shù)的過程中出現(xiàn)調用該函數(shù)本身的過程.即函數(shù)自己調用自己。
舉例
有5個人坐在一起,問第五個人幾歲?他說比第4個人大2歲。問第4個人,他說比第3個人大2歲。問第3個人,他說比第2個人大2歲。問第2個人,他說比第1個人大2歲。最后問第1個人,他說是10歲。請問第5個人是多大。求第5個人的年齡age(5)=age(4)+2age(4)=age(3)+2age(3)=age(2)+2age(2)=age(1)+2age(1)=10age(n)=10(n=1)age(n)=age(n-1)+2(n>1)
舉例
#include<stdio.h>intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;return(c);}main(){printf(“%d”,age(5));}運行結果:18age(5)=age(4)+2=age(2)+2=age(3)+2=age(1)+2=10age(2)=12age(4)=16age(3)=14age(5)=18
真題練一練
通過分析得出結論:func(n)=1(n=1)func(n)=func(n-1)*n(n>1)答案:1*2*3*4*5=120
嵌套調用
C語句不能嵌套定義函數(shù),但可以嵌套調用函數(shù)。
也就是說在調用一個函數(shù)的過程中,又調用另一個函數(shù)。兩層嵌套,其執(zhí)行過程為:main函數(shù)調用a函數(shù)a函數(shù)b函數(shù)調用b函數(shù)結束
思考題
#include<stdio.h>intb(intx){return(x+1);}inta(intm,intn){if(m>n)return(m);elseb(5);}main(){intm=3,n=8,r;r=a(m,n);printf("%d\n",r);}想一想:輸出結果是什么?輸出結果是:6
真題練一練
從n個不同的元素中,每次取出k個不同的元素,不管其順序合并成一組,稱為組合.組合種數(shù)計箅公式如下..
Cnk=n!/((n-k)!*k!)1)定義函數(shù)fact(n)計算n!,類型double.2)定義函數(shù)cal(k,n),計算組合種數(shù)Cnk,類型double.要求調用fact(n)計算n!.3)定義函數(shù)main(),輸入正整數(shù)n,輸出n的所有組合數(shù)Cnk,要求調用函數(shù)cal(k,n).
真題練一練
#include<stdio.h>doublefact(intn){inti;doubles=1;for(i=1;i<=n;i++)s=s*i;returns;}doublecal(intk,intn){return(fact(n)/(fact(n-k)*fact(k)));}main(){intn,k;doublesum;scanf(“%d”,&n);for(k=1;k<=n;k++){sum=cal(k,n);printf(“.3f\n”,sum);}}
課后練一練
編寫程序,輸入一個正整數(shù)n,求下列算式的值:1+1
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 房屋租賃合同和房屋買賣合同
- 人工養(yǎng)豬場租賃合同書
- 停車車庫買賣合同
- 劇組管理人員勞動合同
- 租賃農村房屋租賃合同標準(2025年版)
- 道路土方測繪合同范本
- 英文資產評估合同范本
- (14)-專題14 口語交際
- 工人干活協(xié)議合同范本
- 油漆材料供貨合同范本
- 水利主要工序施工方案,控制及工程項目實施的重點,難點和解決方案
- 人教版小學數(shù)學基礎知識
- 電感器在DC-DC轉換器中的應用考核試卷
- 機械設計基礎 軸系結構改錯答案
- 大學校園綠化與可持續(xù)發(fā)展規(guī)劃
- 電梯扶梯管理制度
- 道路勘測設計-行車視距及其 保84課件講解
- 考研學習筆記 《微生物學教程》(第3版)筆記和課后習題(含考研真題)詳解
- 【MOOC】電子數(shù)據(jù)取證技術-南京郵電大學 中國大學慕課MOOC答案
- 【MOOC】農作學-西北農林科技大學 中國大學慕課MOOC答案
- 通信行業(yè)網絡性能優(yōu)化與安全防護措施研究
評論
0/150
提交評論