目录

数列相关算法

本文主要收集一些常见的数列的算法实现。

斐波那契数列

现实例子

  • 一般而言,兔子在出生两个月后,就有繁殖能力,一对兔子每个月能生出一对小兔子来。如果所有兔子都不死,那么一年以后可以繁殖多少对兔子?

WX20190318-194904.png

  • 有一段楼梯有10级台阶,规定每一步只能跨一级或两级,要登上第10级台阶有几种不同的走法?

数列有关十分明显的特点,那是:前面相邻两项之和,构成了后一项。

数学定义:

WX20190318-195320.png

int fib( int n )
{
    if( n <= 2 )
        return 1;

    int fn;         // n 项
    int fn_1 = 1;   // n - 1 项
    int fn_2 = 1;   // n - 2 项

    for( int i = 2; i < n; i++ )
    {
        fn = fn_1 + fn_2;
        fn_2 = fn_1;
        fn_1 = fn;
    }

    return fn;
}