C/C++ は再帰的思考を使用してフィボナッチ数列を解決します

導入

フィボナッチ数列 (フィボナッチ数列)。数学者レオナルドの フィボナッチ証書< にちなんで、黄金分割数列とも呼ばれます。 a i=3> (レオナルド フィボナッチ) は、 ウサギ の複製を例として紹介したため、「ウサギ列」とも呼ばれます。値は次のとおりです。 : 1、1、2、3、5、8、13、21、34、55... 数学的には、このシーケンスは次の再帰的方法によって定義されます: F(0)=1、F(1) =1、F (n)=F(n - 1)+F(n - 2) (n ≥ 2、n ∈ N*)。

フィボナッチ数列定義

フィボナッチ数列 は、1、1、2、3、5、8、13、21、34、55、89... のような数列を指します。

このシーケンスは3 番目のアイテムから始まり、各アイテムは次の合計に等しくなります。前の2項目です。

コード:

このプログラムの関数は、再帰を使用してフィボナッチ数列の項を計算します。 関数では、 が 10 に設定されています。これは、フィボナッチ数列の 10 番目の項が計算されることを意味します。プログラムを実行すると、10 番目のフィボナッチ数の値が出力されます。 再帰が理解できない場合は、私の記事をご覧ください:Python はハノイの塔問題の再帰アルゴリズムを実装_中国語Nota Python コード recursion_halo0416 のブログ - CSDN ブログ fabonacciimaini

フィボナッチ数列を計算する再帰的方法はシンプルで理解しやすいですが、i 値が大きくなると再帰的に同じ部分問題が繰り返し計算されるため、パフォーマンスの問題が発生する可能性があります。

#include <stdio.h>

// 递归方式计算 Fibonacci 数列
int fabonacci(int i) {
    // 如果输入值小于3,返回1
    if (i < 3) {
        return 1;
    } else {
        // 递归调用,返回前两个值的和
        return fabonacci(i - 1) + fabonacci(i - 2);
    }
}

int main() {
    int i = 10; // 设定要计算 Fibonacci 数列的项数
    int fbnqie = fabonacci(i); // 调用函数计算第i项 Fibonacci 数
    printf("\nThe Number of %d Fibonacci: %d\n", i, fbnqie); // 输出结果
    return 0;
}

おすすめ

転載: blog.csdn.net/m0_74053536/article/details/134163729