国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C++ > 正文

C++ 遞歸&例子

2019-11-06 08:18:10
字體:
來源:轉載
供稿:網友
驗證遞歸,可以用數學歸納法:當n=0, 1的時候, 結果正確.假設函數對于n-1是正確的, 那么函數對n結果也正確.如果這兩點是成立的,我們知道這個函數對于所有可能的n都是正確的。如何找到遞歸算法:你必須要示范如何解決問題的一般情況, 通過將問題切分成有限小并更小的子問題,假設n-1成立,那么n需要怎么表示?你必須要示范如何通過有限的步驟, 來解決最小的問題(基本用例),即0或者1如果這兩件事完成了, 那問題就解決了. 因為遞歸每次都將問題變得更小, 而一個有限的問題終究會被解決的, 而最小的問題僅需幾個有限的步驟就能解決.遞歸的例子:e.g.1 斐波那契數列遞歸法,然而這種解法效率不高!非遞歸法:------------------------------------------------------------------------------------e.g.2階乘遞歸法:long factoria(int n){return n <= 0 ? 1 : factoria(n - 1)*n;}-------------------------------------------------------------------------------------e.g.3漢諾塔有三根桿子A,B,C。A桿上有N個(N>1)穿孔圓盤,盤的尺寸由下到上依次變小。要求按下列規則將所有圓盤移至C桿:1.每次只能移動一個圓盤.2.大盤不能疊在小盤上面.遞歸法:顯示步驟:void hanoi(int n, char A, char B, char C){if (n == 1)cout << A << "-->" << C << endl;else{hanoi(n - 1, A, C, B);cout << A << "-->" << C << endl;hanoi(n - 1, B, A, C);}}總共需要移動多少次盤子:int count(int n){int c = 0;if (n == 1)c = n;elsec = 2 * count(n - 1) + 1;return c;}----------------------------------------------------------------------------------
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表

圖片精選

主站蜘蛛池模板: 景德镇市| 雷波县| 吉木萨尔县| 西城区| 灌阳县| 天门市| 淳安县| 修文县| 平远县| 新竹县| 新民市| 铜山县| 沛县| 湟中县| 开江县| 博爱县| 大城县| 岗巴县| 江阴市| 苏州市| 武陟县| 武穴市| 丹凤县| 衡水市| 客服| 博野县| 长子县| 张北县| 六盘水市| 高州市| 漳浦县| 济源市| 长泰县| 琼结县| 石台县| 九龙县| 龙里县| 余干县| 商水县| 运城市| 红原县|