首页 > 编程笔记

斐波那契数列的C语言实现

斐波那契数列(Fibonacci sequence),又称黄金分割数列,本文我们使用C语言递归函数来输出斐波那契数列。

Fibonacci 数列具有这样的特征,它的前两项都为 1,从第 3 项开始,每一项都是前两项的和。例如 1,1,2,3,5,8,13,21,34……可以由下面的公式表示。


其中,n 表示第几项,函数值 fibonacci(n) 表示第 n 项的值。当 n 的值大于 2 时,每一项的计算方法都一样,因此可以定义一个 f(n) 函数来计算第 n 项的值,递归的终止条件是当 n=1 或 n=2 时。

示例

用递归法求 Fibonacci 数列(斐波那契数列)。代码如下:
#include<stdio.h>
long fibonacci(int n)        /*求Fibonacci数列中第n个数的值*/
{
   if(n==1||n==2)        /*Fibonacci数列中前两项均为1,终止递归的语句*/
      return 1;
   else 
      return(fibonacci(n-1)+fibonacci(n-2)); /*从第3项开始,下一项是前两项的和*/
}
main()
{
    int n,i;
    long y;
    printf("Input n:");
    scanf("%d",&n);  
    for(i=1;i<=n;i++)      /*列出Fibonacci数列的前n项*/
    {
       y=fibonacci(i);
       printf("%ld  ",y);
    }
    printf("\n");
}
运行结果:

Input n:8
1  1  2  3  5  8  13  21

优秀文章