原文: https://beginnersbook.com/2014/06/c-program-to-display-fibonacci-series/

在本教程中,我们将学习以下两种方法,以 C 编程语言显示 Fibonacci 序列:

1)使用for循环

2)使用递归

使用循环的 Fibonacci 序列

一个简单的for循环用于显示序列。程序提示用户输入项数,并显示具有相同项数的序列。

  1. #include<stdio.h>
  2. int main()
  3. {
  4. int count, first_term = 0, second_term = 1, next_term, i;
  5. //Ask user to input number of terms
  6. printf("Enter the number of terms:\n");
  7. scanf("%d",&count);
  8. printf("First %d terms of Fibonacci series:\n",count);
  9. for ( i = 0 ; i < count ; i++ )
  10. {
  11. if ( i <= 1 )
  12. next_term = i;
  13. else
  14. {
  15. next_term = first_term + second_term;
  16. first_term = second_term;
  17. second_term = next_term;
  18. }
  19. printf("%d\n",next_term);
  20. }
  21. return 0;
  22. }

输出:

  1. Enter the number of terms: 8
  2. First 8 terms of Fibonacci series:
  3. 0
  4. 1
  5. 1
  6. 2
  7. 3
  8. 5
  9. 8
  10. 13

使用递归显示 Fibonacci 序列的程序

这里我们使用用户定义的函数fibonacci_series(),它递归调用自身,以显示输入的项数量的序列。

  1. #include<stdio.h>
  2. int fibonacci_series(int);
  3. int main()
  4. {
  5. int count, c = 0, i;
  6. printf("Enter number of terms:");
  7. scanf("%d",&count);
  8. printf("\nFibonacci series:\n");
  9. for ( i = 1 ; i <= count ; i++ )
  10. {
  11. printf("%d\n", fibonacci_series(c));
  12. c++;
  13. }
  14. return 0;
  15. }
  16. int fibonacci_series(int num)
  17. {
  18. if ( num == 0 )
  19. return 0;
  20. else if ( num == 1 )
  21. return 1;
  22. else
  23. return ( fibonacci_series(num-1) + fibonacci_series(num-2) );
  24. }

输出:

  1. Enter number of terms: 6
  2. Fibonacci series:
  3. 0
  4. 1
  5. 1
  6. 2
  7. 3
  8. 5