第5章 遞回
目錄- 一、遞回的基本概念與遞回程式設計
- 二、遞回程式執行程序的分析
- 三、遞回程式到非遞回程式的轉換
- 3.1 簡單遞回程式到非遞回程式的轉換
- 3.2 復雜遞回程式到非遞回程式的轉換
- 四、遞回程式設計的應用實體(大綱未規定)
- 五、演算法設計題
- 5.1 列印結果—1\n22\n333\n...(真題)(演算法)
- 六、錯題集
一、遞回的基本概念與遞回程式設計
- 遞回:直接或間接的呼叫函式本身
- 遞回程式的兩個特點:
- 具備遞回出口
- 在不滿足遞回出口的情況下,把原問題分解成若干子問題,子問題的求解通過一定的方式修改引數進行函式自身呼叫加以實作
二、遞回程式執行程序的分析
- 略
三、遞回程式到非遞回程式的轉換
- 遞回程式和非遞回程式的區別:相比較非遞回程式,遞回程式的空間需求和時間需求較高
3.1 簡單遞回程式到非遞回程式的轉換
- 簡單遞回程式:自頂向下產生計算序列
- 非遞回程式:利用遞推關系,自底向上產生計算序列
3.2 復雜遞回程式到非遞回程式的轉換
- 復雜遞回程式到非遞回程式的轉換:使用堆疊來記錄和管理所設定的回溯點,當求解無法進行下去或當前處理的作業已經完成時必須退回到所設定的回溯點,繼續問題的求解
四、遞回程式設計的應用實體(大綱未規定)
- 略
五、演算法設計題
5.1 列印結果—1\n22\n333\n...(真題)(演算法)
試撰寫一個遞回函式,以正整數 \(n\) 為引數,該函式所實作的功能為:在第 \(1\) 行列印輸出 \(1\) 個 \(1\),在第 \(2\) 行列印輸出 \(2\) 個 \(2\) \(,\cdots,\) 在第 \(n\) 行列印輸出 \(n\) 個 \(n\),
print(int n) {
int i;
if (n != 0) {
print(n - 1);
for (i = 1; i <= n; i++) printf("%d", n);
printf("\n");
}
}
六、錯題集
- 略
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/155585.html
標籤:其他
上一篇:請教
下一篇:第6章 樹型結構
