題組內容
五、「遞迴」與「迴圈」是程式設計重要的手法,請回答下列問題:
(二)下列左右兩邊之程式碼,左邊以「遞迴」手法撰寫,右邊擬將之改為以「迴圈」手法撰 寫,請於右邊程式空白處填入正確程式碼。(9分)
詳解 (共 2 筆)
詳解

費氏數列的迭代建議背下來
想法:
(1)由於費氏數列基本規則,因此必有一段程式為fib_n = fibn_1 + fibn_2;
(2)接著從上圖可看出 會有fib_n_2=fib_n_1;與fib_n_1 =fib_n;(3)再將這三段程式碼依照優先順序排列後試算看看誰先誰後,即可得出答案
詳解
這題 fib_1 與 fib_2 的賦值的順序是有差的,答案會不一樣
正確如下 :

如果是
f_n = f_1 + f_2;
f_2 = f_1;
f_1 = f_n;
出來的數列會變成 :
[1 1 1 2 3 5 8 ......]
正確如下 :

如果是
f_n = f_1 + f_2;
f_2 = f_1;
f_1 = f_n;
出來的數列會變成 :
[1 1 1 2 3 5 8 ......]