fork download
  1. #include <stdio.h>
  2.  
  3. /* フィボナッチ数列を再帰で求める関数 */
  4. int fibo(int n)
  5. {
  6. if(n <= 1)
  7. return n;
  8.  
  9. return fibo(n - 1) + fibo(n - 2);
  10. }
  11.  
  12. /* 0~n番目までのフィボナッチ数の合計を求める関数 */
  13. int sumFibo(int n)
  14. {
  15. if(n <= 0)
  16. return 0;
  17.  
  18. return fibo(n) + sumFibo(n - 1);
  19. }
  20.  
  21. /* 奇数のフィボナッチ数の個数を数える関数 */
  22. int oddFiboCount(int n)
  23. {
  24. if(n <= 0)
  25. return 0;
  26.  
  27. if(fibo(n) % 2 == 1)
  28. return 1 + oddFiboCount(n - 1);
  29.  
  30. return oddFiboCount(n - 1);
  31. }
  32.  
  33. int main()
  34. {
  35. int n = 10;
  36.  
  37. printf("%d番目のフィボナッチ数:%d\n", n, fibo(n));
  38.  
  39. printf("0~%d番目までの合計:%d\n", n, sumFibo(n));
  40.  
  41. printf("奇数のフィボナッチ数の個数:%d\n",
  42. oddFiboCount(n));
  43.  
  44. return 0;
  45. }
Success #stdin #stdout 0s 5312KB
stdin
Standard input is empty
stdout
10番目のフィボナッチ数:55
0~10番目までの合計:143
奇数のフィボナッチ数の個数:7