電腦科學 第15周 遞迴函式 題目及參考解答

2021-06-22 08:51:18 字數 1375 閱讀 7880

《電腦科學》課程主頁在:

1、閱讀下面關於遞迴函式的程式,在草稿紙上畫出函式呼叫「遞推-回歸」的過程,得出執行結果,並和實際執行結果進行對照

(1)

#include int fact(int n);

int main()

int fact(int n)

通過繪出「遞推-回歸」圖,你認為執行結果為:____________________

實際執行的結果為:_________________

(2)

#include void f(int n)

int main()

通過繪出「遞推-回歸」圖,你認為執行結果為:____________________

實際執行的結果為:_________________

2、閱讀下面關於遞迴函式的程式,寫下你認為的執行結果,並和實際執行結果進行對照,然後通過「單步執行」,觀察這些遞迴函式的執行過程。

(1)

#include void recur(char c)

int main()

你認為執行結果為:__________________

實際執行的結果為:_________________

請用「單步執行」跟蹤。

(2)

#include void f(int n);

int main ()

void f(int n)

}

你認為執行結果為:__________________

實際執行的結果為:_________________

請用「單步執行」跟蹤。

3、樓梯有n階台階,上樓可以一步上1階,也可以一步上2階,編一程式計算共有多少種不同的走法?通過自定義的遞迴函式求解這個問題。

所以,程式設計序解下面的方程,即是本題解法:

#include int f(int n);

int main()

int f(int n)

4、編寫程式,計算ackerman函式值並執行程式求出a(3,2)的值。

實際上,當m≥4,ackermann函式的增長快得驚人。ackermann(4,2)=2^65536-3有19729位,而ackermann(4,3)則即使是位數也不易估計。

計算機要求解這樣的函式,也得另闢他徑。

法133電腦科學課第15周實踐題目及參考解答

課程主頁在 程式設計練習1 輸出1000以內的所有素數。include includeint main if prime 1 printf d m return 0 程式設計練習2 求滿足條件n a b c 的所有三位數n並輸出,其中a,b,c分別為n的百 十 個位數。includeint main...

電腦科學 演算法 遞迴

本系列文章在github steveneco以及warrenryan同步更新 程式呼叫自身的程式設計技巧稱為遞迴 recursion 遞迴做為一種演算法在程式語言中廣泛應用。乙個過程或函式在其定義或說明中有直接或間接呼叫自身的一種方法,它通常把乙個大型複雜的問題層層轉化為乙個與原問題相似的規模較小的...

法133電腦科學課第11周實踐題目及參考解答

課程主頁在 description 輸入n,求 n以內奇數的平方和 input 整型數n output n以內奇數的平方和 例如,輸入 7,輸出為 12 32 52 72 84 sample input sample output includeint main printf d sum retur...