#include <stdio.h>
/* フィボナッチ数列を再帰で求める関数 */
int fibo(int n)
{
if(n <= 1)
return n;
return fibo(n - 1) + fibo(n - 2);
}
/* 0~n番目までのフィボナッチ数の合計を求める関数 */
int sumFibo(int n)
{
if(n <= 0)
return 0;
return fibo(n) + sumFibo(n - 1);
}
/* 奇数のフィボナッチ数の個数を数える関数 */
int oddFiboCount(int n)
{
if(n <= 0)
return 0;
if(fibo(n) % 2 == 1)
return 1 + oddFiboCount(n - 1);
return oddFiboCount(n - 1);
}
int main()
{
int n = 10;
printf("%d番目のフィボナッチ数:%d\n", n
, fibo
(n
));
printf("0~%d番目までの合計:%d\n", n
, sumFibo
(n
));
oddFiboCount(n));
return 0;
}
I2luY2x1ZGUgPHN0ZGlvLmg+CgovKiDjg5XjgqPjg5zjg4rjg4Pjg4HmlbDliJfjgpLlho3luLDjgafmsYLjgoHjgovplqLmlbAgKi8KaW50IGZpYm8oaW50IG4pCnsKICAgIGlmKG4gPD0gMSkKICAgICAgICByZXR1cm4gbjsKCiAgICByZXR1cm4gZmlibyhuIC0gMSkgKyBmaWJvKG4gLSAyKTsKfQoKLyogMO+9nm7nlarnm67jgb7jgafjga7jg5XjgqPjg5zjg4rjg4Pjg4HmlbDjga7lkIjoqIjjgpLmsYLjgoHjgovplqLmlbAgKi8KaW50IHN1bUZpYm8oaW50IG4pCnsKICAgIGlmKG4gPD0gMCkKICAgICAgICByZXR1cm4gMDsKCiAgICByZXR1cm4gZmlibyhuKSArIHN1bUZpYm8obiAtIDEpOwp9CgovKiDlpYfmlbDjga7jg5XjgqPjg5zjg4rjg4Pjg4HmlbDjga7lgIvmlbDjgpLmlbDjgYjjgovplqLmlbAgKi8KaW50IG9kZEZpYm9Db3VudChpbnQgbikKewogICAgaWYobiA8PSAwKQogICAgICAgIHJldHVybiAwOwoKICAgIGlmKGZpYm8obikgJSAyID09IDEpCiAgICAgICAgcmV0dXJuIDEgKyBvZGRGaWJvQ291bnQobiAtIDEpOwoKICAgIHJldHVybiBvZGRGaWJvQ291bnQobiAtIDEpOwp9CgppbnQgbWFpbigpCnsKICAgIGludCBuID0gMTA7CgogICAgcHJpbnRmKCIlZOeVquebruOBruODleOCo+ODnOODiuODg+ODgeaVsO+8miVkXG4iLCBuLCBmaWJvKG4pKTsKCiAgICBwcmludGYoIjDvvZ4lZOeVquebruOBvuOBp+OBruWQiOioiO+8miVkXG4iLCBuLCBzdW1GaWJvKG4pKTsKCiAgICBwcmludGYoIuWlh+aVsOOBruODleOCo+ODnOODiuODg+ODgeaVsOOBruWAi+aVsO+8miVkXG4iLAogICAgICAgICAgIG9kZEZpYm9Db3VudChuKSk7CgogICAgcmV0dXJuIDA7Cn0=