fork download
  1. #include <stdio.h>
  2.  
  3. /* フィボナッチ数列の第n項目を求める再帰関数 */
  4. int fibo(int n)
  5. {
  6. printf("関数が開始されました。引数は%dです。\n", n);
  7.  
  8. if(n == 0 || n == 1) {
  9. printf("n=%d なので 1 を返します。\n", n);
  10. return 1;
  11. }
  12.  
  13. int result = fibo(n - 1) + fibo(n - 2);
  14.  
  15. printf("fibo(%d) = %d を返します。\n", n, result);
  16.  
  17. return result;
  18. }
  19.  
  20. int main(void)
  21. {
  22. printf("fibo(6) = %d\n", fibo(6));
  23.  
  24. return 0;
  25. }
Success #stdin #stdout 0s 5320KB
stdin
Standard input is empty
stdout
関数が開始されました。引数は6です。
関数が開始されました。引数は5です。
関数が開始されました。引数は4です。
関数が開始されました。引数は3です。
関数が開始されました。引数は2です。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
関数が開始されました。引数は0です。
n=0 なので 1 を返します。
fibo(2) = 2 を返します。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
fibo(3) = 3 を返します。
関数が開始されました。引数は2です。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
関数が開始されました。引数は0です。
n=0 なので 1 を返します。
fibo(2) = 2 を返します。
fibo(4) = 5 を返します。
関数が開始されました。引数は3です。
関数が開始されました。引数は2です。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
関数が開始されました。引数は0です。
n=0 なので 1 を返します。
fibo(2) = 2 を返します。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
fibo(3) = 3 を返します。
fibo(5) = 8 を返します。
関数が開始されました。引数は4です。
関数が開始されました。引数は3です。
関数が開始されました。引数は2です。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
関数が開始されました。引数は0です。
n=0 なので 1 を返します。
fibo(2) = 2 を返します。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
fibo(3) = 3 を返します。
関数が開始されました。引数は2です。
関数が開始されました。引数は1です。
n=1 なので 1 を返します。
関数が開始されました。引数は0です。
n=0 なので 1 を返します。
fibo(2) = 2 を返します。
fibo(4) = 5 を返します。
fibo(6) = 13 を返します。
fibo(6) = 13