#include <stdio.h>
/* フィボナッチ数列の第n項目を求める再帰関数 */
int fibo(int n)
{
printf("関数が開始されました。引数は%dです。\n", n
);
if(n == 0 || n == 1) {
printf("n=%d なので 1 を返します。\n", n
); return 1;
}
int result = fibo(n - 1) + fibo(n - 2);
printf("fibo(%d) = %d を返します。\n", n
, result
);
return result;
}
int main(void)
{
printf("fibo(6) = %d\n", fibo
(6));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovKiDjg5XjgqPjg5zjg4rjg4Pjg4HmlbDliJfjga7nrKxu6aCF55uu44KS5rGC44KB44KL5YaN5biw6Zai5pWwICovCmludCBmaWJvKGludCBuKQp7CiAgICBwcmludGYoIumWouaVsOOBjOmWi+Wni+OBleOCjOOBvuOBl+OBn+OAguW8leaVsOOBryVk44Gn44GZ44CCXG4iLCBuKTsKCiAgICBpZihuID09IDAgfHwgbiA9PSAxKSB7CiAgICAgICAgcHJpbnRmKCJuPSVkIOOBquOBruOBpyAxIOOCkui/lOOBl+OBvuOBmeOAglxuIiwgbik7CiAgICAgICAgcmV0dXJuIDE7CiAgICB9CgogICAgaW50IHJlc3VsdCA9IGZpYm8obiAtIDEpICsgZmlibyhuIC0gMik7CgogICAgcHJpbnRmKCJmaWJvKCVkKSA9ICVkIOOCkui/lOOBl+OBvuOBmeOAglxuIiwgbiwgcmVzdWx0KTsKCiAgICByZXR1cm4gcmVzdWx0Owp9CgppbnQgbWFpbih2b2lkKQp7CiAgICBwcmludGYoImZpYm8oNikgPSAlZFxuIiwgZmlibyg2KSk7CgogICAgcmV0dXJuIDA7Cn0=