1. 程式人生 > >C程式-斐波納契數列

C程式-斐波納契數列

斐波納契數列(Fibonacci Sequence)又稱黃金分割數列,指的是這樣一個數列:1、1、2、3、5、8、13、21、……在數學上,斐波納契數列以如下被以遞迴的方法定義:F0=0,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*)在現代物理、準晶體結構、化學等領域,斐波納契數列都有直接的應用,為此,美國數學會從1960年代起出版了《斐波納契數列》季刊,專門刊載這方面的研究成果。

 

#include <stdio.h>

int Fibonacci(int n)//用遞迴法計算斐波那契數列的第n項 
{
    if(n==1||n==2)//第一第二項都是1,也是遞迴結束標誌 
        return 1;
    else
        return Fibonacci(n-1)+Fibonacci(n-2);//// 如果是求其它項,先要求出它前面兩項,然後做和
}  
int Fibonacci_1(int n)//輸出斐波那契數列的每一項 
{
     int i,j;
     int f1=1,f2=1;//初始化f1,f2 
     for(i=1;i<=(n+1)/2;i++)
     {
         printf("%d %d ",f1,f2);//每次輸出兩項 
         f1=f1+f2;
         f2=f1+f2;//公式 
         if(i%10==0)//換行,10個數一行 
             printf("\n");
     }
}

int main( ) 
{
    int n;
    scanf("%d",&n);
    printf("Result: %d\n",Fibonacci(n));
    Fibonacci_1(n);
    return 0;
}