【C語言教學手冊(四版)-練習題解答】
第8章
8.4 遞迴函數
18. 試依序回答下列的問題: (a) 試將 prog8_12 計算費氏數列的函數 int fib(n),改以非遞迴的方式來撰寫(提 示:利用 for 迴圈)。 (b) 就效率而言,以 for 迴圈撰寫的 fib() 函數的執行速度較快,還是以遞迴的方 式來撰寫的 fib() 函數較快,為什麼?
#include <stdio.h>
int fib(int);
int main()
{
int n;
for(n=1;n<=10;n++)
printf(“fib(%d)=%d\n”,n,fib(n));
}
int fib(int n)
{
int i,ans = 0;
int n1 = 1 ,n2 = 1;
if (num==1 || num==2)
return 1;
else
{
for (int i=3;i<num;i++)
{
ans = n1 + n2;
n1 = n2;
n2 = ans;
}
return ans;
}
}
(b)
會發生重覆計算
(不好意思小宣傳一下我的繪圖 希望大家喜歡)
\\♥
謝謝大家:))
ps
p新的貼圖終於出來了💜
💜
💜
可愛的海苔貓-第三代
海苔貓繪圖作品\\
希望大家支持~~