フィボナッチ数列 - C言語

目次

1. 再帰的方法

2.forループ

3.forループ+配列

フィボナッチ数列 (フィボナッチ数列)、黄金分割数列とも呼ばれ、イタリアの数学者レオナルドによって提案されました。フィボナッチ。フィボナッチ数列は、1、1、2、3、5、8、13、21、34、... の数値シーケンスを指します。このシーケンスは 3 番目の項目から始まり、各項目は前の 2 つの項目と等しくなります。 .合計。数学的には、フィボナッチ数列は次のように再帰的に定義できます。

F(1)=1

F(2)=1 *

……

F(n)=F(n - 1)+F(n - 2)(n ≥ 3、 n ∈ N*)

フィボナッチ数列は数学の古典的な例であり、日常生活にも多くの応用があり、黄金分割とも密接に関係しており、n が無限大になる傾向にある場合、前期と後期の比が黄金分割に近づきます。値は 0.618 です。

1. 再帰的方法

フィボナッチ数列のn番目の項を出力します。

#include<stdio.h>
int Fibon(int n)  //递归函数 
{
   if (n == 1|| n == 2)
       return 1;
   else
       return Fibon(n-1)+ Fibon(n-2);
}
int main()
{
    int n,res=0;
    scanf("%d",&n); 
    for (int i = 1; i <= n; i++)
    {
        res = Fibon(i);
//      printf("%d ",res);
    }
    printf("\n第%d项斐波那契数列的值为:%d",n,res);
    return 0;
}

操作結果:

2.forループ

#include<stdio.h>
int main()
{
    int f1 = 1; //第一项 
    int f2 = 1;  //第二项 
    int f3 = 1;   //如果n=3 才会进入for循环计算,否则都输出1 就不用再分别考虑前面两个数的输出问题 
    int n;
    scanf("%d",&n); 
    for (int i = 2; i < n; i++)
    {
        f3 = f1 + f2;
        f1 = f2;
        f2 = f3;
//      printf("%d ", f3);      
    }
    printf("\n第%d项斐波那契数列的值为:%d",n,f3);
    return 0;
}

3.forループ+配列

#include<stdio.h>
int main()
{
    int a[1005],n;
    scanf("%d",&n);
    
    a[1]=1,a[2]=1,a[3]=2;
    
    for(int i=3;i<=n;i++)
    {
        a[i]=a[i-1]+a[i-2];
//        printf("%d\n",a[i]);
    }
    printf("第%d项斐波那契数列的值为:%d",n,a[n]);
    return 0;
}

おすすめ

転載: blog.csdn.net/weixin_63292027/article/details/132996658