【C語言教學手冊(四版)-練習題解答】

 第8章

C語言教學手冊(四版)-博客來網址

      8. 區域、全域與靜態變數

 

 

27. 試撰寫一程式,用來比較計算 fib(n) 函數時,遞迴版本和 for 迴圈版本執行 fib() 的總 次數(關於 fib() 函數的定義,請參考 8.4 節)。n 值取 1~30,執行結果應如下所示:

n= 1, for 迴圈 1 次, 遞迴 1 次

n= 2, for 迴圈 1 次, 遞迴 1 次

n= 3, for 迴圈 3 次, 遞迴 3 次

n= 4, for 迴圈 4 次, 遞迴 5 次

...

n=30, for 迴圈 30 次, 遞迴 1664079 次

#include <stdio.h>

void count_r(), count_for();

int fib(int), rfib(int);

int cnt1,cnt2;

int main()

{

int i;

for(i=1;i<=30;i++)

{

cnt1=0;

cnt2=0;

fib(i);

printf("n=%d, for 迴圈%d , ",i,cnt1);

rfib(i);

printf("遞迴%d \n",cnt2);

}

}

void count_for()

{

cnt1++;

}

void count_r()

{

 cnt2++;

}

int fib(int n)

{

int i,fn;

int fn_1=1,fn_2=1;

for(i=1;i<=n;i++)

{

 count_for();

  f(n==1 || n==2)

  return 1;

else

{

 fn=fn_1+fn_2;

 fn_2=fn_1;

 fn_1=fn;

}

}

return fn;

}

int rfib(int n)

{

count_r();

if(n==1 || n==2)

 return 1;

  else

  return rfib(n-1)+rfib(n-2);

 

 

 

  }

 


 

(不好意思小宣傳一下我的繪圖 希望大家喜歡)

 

\\

這是我的海苔貓粉專

www.facebook.com/norinekocat/

 

海苔貓IG

海苔貓Instagram

 

謝謝大家:))

裡面有許多繪圖作品~ 

希望大家支持我會繼續努力

請多多指教哦

 

 

ps

p新的貼圖終於出來了💜💜💜

可愛的海苔貓-第三代

 

海苔貓繪圖作品\\

希望大家支持~~

arrow
arrow
    文章標籤
    解答 C語言 遞迴 for
    全站熱搜

    海苔貓Nori 發表在 痞客邦 留言(0) 人氣()