遞迴 01010 10101 01010 10101 01010 10101.

Slides:



Advertisements
Similar presentations
课前寄语 1 、保持纪律 2 、相互配合. 第三节 公民的投资 —— 公民的存款储蓄 课堂导入.
Advertisements

旅遊實務Ⅰ 授課教師:李健民 上課班級: 320. 課程大綱 旅遊業之設立程序 旅行業組織結構 旅行業之分類 旅行業之管理.
親 ( 四 ) 親近神的路. 一、親的三字訣、七字訣: 親近神,親愛人; 與主交通親近神,同情關心親愛人。 甚麼是親? 1. 親有親近、親愛,更有關心、同情、親切的 意思。 2. 親的人與人沒有間隔,拉近人與人之間的距 離,並且樂意幫助人,與人相調建造在一起。
While 迴圈 - 不知重複執行次數
第二班群教師團隊 105 張心平 107 鐘于寧 106 黃意評 108 鄭婉茹. 第二班群之班親會說明 學校規定事項說明 教學活動說明 班群活動介紹.
差勤.
申論題要拿高分並不容易,因為他是 有一定的技巧的,如果你遵照下列技 巧來作答申論題,相信高分並不難拿, 其技巧如下:
102大學甄選入學 個人申請、繁星推薦說明 主講人:簡慧嫻.
新進教師研習 教務處報告 報告人:教務處 林永仁 2011 年 8 月31日.
「明清時期台灣古典散文」 教師:田啟文.
新頒解釋函令 ● 所得稅扣(免)繳相關法令、 ● 所得稅扣(免)繳申報實務 ● 扣繳常見稅務違章類型 財政部南區國稅局屏東分局
考点作文十大夺魁技法 第28课时 写作(二) 考点作文十大夺魁技法 6-10 ·新课标.
親愛的老師您好 感謝您選用本書作為授課教材,博碩文化準備本書精選簡報檔,特別摘錄重點提供給您授課專用。 說明: 博碩文化:
鼻炎 症狀: 鼻(眼睛)內發癢或不舒服、 打噴嚏、 流鼻涕(水)、 鼻塞………等 。 鼻子內的任何發炎。
舊石器時代 位置: 亞洲大陸東緣,西太平洋弧狀列島一部份 背景 形成: 兩千多萬年前逐漸隆起,形成島嶼 生物: 大角鹿、猛瑪象、亞洲大陸原始人 臺東 長濱文化 苗栗 網形文化 臺南 左鎮人目前臺灣發現最早人類化石 代表 文化 1.住在海邊洞穴-短期定居小型隊群 2.以採集、狩獵為生 3.使用礫石砍伐器、片器、尖器.
3-2 條件不等式 解一元 n 次不等式 二元一次不等式的圖解法 函數的極植.
计算学科的基本问题 本章首先介绍一个对问题进行抽象的典型实例——哥尼斯堡七桥问题。然后,通过“梵天塔”问题和“停机问题”分别介绍学科中的可计算问题和不可计算问题。从“梵天塔”问题再引出算法复杂性中的难解性问题、P类问题和NP类问题,证比求易算法,P=NP是否成立的问题。
计算机三级考试C语言上机试题专题.
模块七 房地产营销渠道策略 主要内容 房地产营销渠道类型 房地产营销渠道选择方法 开发商与代理商的合作模式.
遣詞造句知多少? 中文系 王偉勇教授 兼通識教育中心中心主任.
(4)理论体系与实训模块 必须衔接、融合 本课程把理论教学体系与实训模块结构连接成一个完整的高职课程体系。
最有利標及評選優勝廠商 講師 劉金龍 經歷:臺中市政府發包科科長.
三、市场营销学研究的基本方法 (1)产品研究法。是以物为中心的研究方法,即在产品分类的基础上,对各类产品市场分别进行研究。 (2)机构研究法。是以研究市场营销制度为出发点,体现以人为中心的研究方法,即集中对整个市场营销系统中的各特定机构的性质和功能进行研究。 (3)职能研究法。是以研究产品从生产者到消费者手中所进行的各种营销活动过程中,市场营销组织所发挥的功能的方法。
青春期 要長大囉! 男女有別 生命的誕生~兩性結合才有下一代的新生命 為什麼會有月經? 經痛怎麼辦 ? 渡過快樂青春喜歡自己
第十一章 真理与价值 主讲人:阎华荣.
親愛的吉姆舅舅:   今天吃完晚餐後,奶奶說,在家裡情況變好以前,您要我搬到城裡跟您住。奶奶有沒有跟您說,爸爸已經好久沒有工作,也好久沒有人請媽媽做衣服了?   我們聽完都哭了,連爸爸也哭了,但是媽媽說了一個故事讓我們又笑了。她說:您們小的時候,她曾經被您追得爬到樹上去,真的嗎?   雖然我個子小,但是我很強壯,只要我會做的我都可以幫忙,但是,奶奶說,做其他事情以前,要先把功課做完。
网络的利与弊 2017/3/19 该课件由【语文公社】
第七章 固 定 资 产.
行政院國軍退除役官兵輔導委員會 嘉義榮民醫院.
C語言中可變参數的用法——va_list、va_start、va_arg、va_end参數定義
Chapter 5 遞迴 資料結構導論 - C語言實作.
高级语言程序设计 主讲人:陈玉华.
由C程序结构所知,一个完整的C语言程序是由一个且只能有一个main()函数(又称主函数)和若干个其他函数组合而成的。而前面各章仅学习main()函数的编程,本章将介绍其他函数的编程,包括其他函数的定义、调用、参数传递及变量的作用域等。
Visual C++ introduction
遞迴演算法.
4B冊 認識公倍數和最小公倍數 公倍數和最小公倍數的關係.
Introduction to the C Programming Language
6 使用者函數 6.1 函數定義 宣告函數 呼叫函數 呼叫多個函數 6-6
Wavelet transform 指導教授:鄭仁亮 學生:曹雅婷.
計數式重複敘述 for 迴圈 P
程式設計實習課(四) ----C 函數運用----
排列组合 1. 两个基本原理 分类加法计数原理 分步乘法计数原理.
公立學校教職員退休資遣撫卹條例重點說明 苗栗縣政府人事處編製 主講人:陳處長坤榮 107年5月2日.
學習單元:N6 數的性質 學習單位:N6-3 用短除法求H.C.F. 和 L.C.M. 學習重點 : 1. 複習因數分解法求
|07 函數.
最大公因數 第 1 頁.
第三节 常见天气系统.
第一章 程序设计和C语言 主讲人:高晓娟 计算机学院.
C++语言程序设计 C++语言程序设计 第三章 控制语句 第十一组 C++语言程序设计.
C 语言程序设计 程序的循环结构 电大崇信县工作站 梁海亮.
河內之塔(Towers of Hanoi)問題
7.1 C程序的结构 7.2 作用域和作用域规则 7.3 存储属性和生存期 7.4 变量的初始化
演算法時間複雜度 (The Complexity of Algorithms)
第 5 章 遞迴.
C qsort.
實作輔導 本周5/5(六)安排實作輔導 二時段: 周六 11:00~12:30 周六13:30~15:30.
第 二 章 遞迴(Recursion) 課程名稱:資料結構 授課老師:________ 2019/5/5.
项目1 C程序设计起步 学习目标: 通过该项目你可以知道: C语言的用途。 C语言的基本符号和关键字。 C语言程序的结构及特点。
問題解決與流程圖 高慧君 台北市立南港高中 2006年12月22日.
12797: Letters ★★★☆☆ 題組:Problem Set Archive with Online Judge
if (j…) printf ("… prime\n"); else printf ("… not prime\n");
遞迴 Recursion.
Chapter 6 遞迴.
Introduction to the C Programming Language
第三章 流程控制 程序的运行流程 选择结构语句 循环结构语句 主讲:李祥 时间:2015年10月.
程式設計學與教 李忠憲.
微 處 理 機 專 題 – 8051 C語言程式設計 主題:階乘計算
第三章 比與比例式 3-1 比例式 3-2 連比例 3-3 正比與反比.
教師檔案系統資料如何填寫? 如何對應教師評鑑共同基準?.
方法(Method) 函數.
Presentation transcript:

遞迴 01010 10101 01010 10101 01010 10101

遞迴的意義&設計步驟 重覆呼叫(執行)自己本身的程式片段(函數),直到符合終止條件為止 撰寫遞迴程式的步驟: 邊際條件(最簡單情形)的解法 定義函數的參數(傳入值)和傳回值 將大小為n的問題以更小的問題(如n-1)來解答 PS.遞迴呼叫前,先檢查邊際條件,以免無窮呼叫

求1+2+3+...+n=? 解析 傳回值 函數名 參數 邊際條件是n=1時,總合為1 該函數可定成int sum(int ) sum(n) = n + sum(n - 1) int sum(int n) { if (n == 1) return 1; else return n + sum(n - 1); } sum(5)=15 sum(4)=10 sum(3)=6 sum(2)=3 sum(1)=1 求sum(5) 求sum(4) 求sum(3) 求sum(2) 求sum(1) n=5 5+sum(4) n=4 4+sum(3) n=3 3+sum(2) n=2 2+sum(1) n=1 return 1

1*2+2*3+3*4+…+(n-1)*n之和 解析 第n項 第2項 傳回值 參數 邊際條件:n=1,和為0(0*1) 該函數可定成int sum(int ) sum(n) = (n-1)*n + sum(n-1) int sum(int n) { if (n == 1) return 0; else return n*(n-1)+sum(n-1); } 傳回值 參數 函數名

求兩個整數m,n的最大公因數? 解析 傳回值 函數名 參數 如果n==0,則最大公因數為m int , int gcd(int , int) gcd(m , n)=gcd(n , m%n) int gcd(int m, int n) { if (n == 0) return m; else return gcd(n, m%n); } 輸入m,n兩數後,需先判斷n=0? m>n ? … Why?

進階 01010 10101 01010 10101 01010 10101

河內塔 有三根柱子(A,B,C),n個大小不一樣的碟子,一開始時所有n個碟子以大下小上排在某根柱子(A)上。限制一次只能移動一個碟子,且不違反大下小上的原則,如何把這n個碟子全部移到另一根柱子上 遞迴的要點 已知邊際條件(最簡單的情況)如何解 假設某函數已經能解大小為n的問題,也就是要決定此函數的參數和傳回值。 如何利用大小為n的解法,來解更大的問題(n+1)

河內塔 當河內塔的碟子數為0時,問題已解(沒東西好搬了)。 假設三根柱子以int from,to,another來表示,碟子數為n時,要這些碟子從from柱子搬到to柱子,解此問題的函數為 move(n,from,to,another) 如何解n+1個碟子的問題呢? 我們可以把n個碟子由from搬到another 把最底下(n+1)的由from搬到to 把n個碟子由another搬到to 為甚麼上面的搬法沒問題? 當我們搬上面n個碟子時,留在from柱子上的是較大的一個碟子,因此不論我們如何搬動n個碟子,一定不會違反規則(下大),也就是說可以把最底下的當作不存在,好像地板一樣

輸入n=0或n<0時,程式停止 邊際條件 printf("move %d to %d\n", from, to); … void move(int n, int from, int to, int another) { if (n > 0) { move(n - 1, from, another, to); move(n - 1, another, to, from); } int main() { int n=0; while (scanf("%d",&n) > 0) move(n,1,2,3); return 0; printf("move %d to %d\n", from, to); 輸入n=0或n<0時,程式停止