Fibonacci

来源:互联网 发布:阿里云客服在哪申请 编辑:程序博客网 时间:2024/06/16 17:48
//Fibonacci数列//一对小兔子长到3个月的时候会生一对小兔子,求刚开始一对小兔子之后的第n个月//一共有多少对兔子,不计兔子的死亡//第一个月 1 对//第二个月 1 对//第三个月 2 对//第四个月 3 对//递推法int Fibonacci_1(int n){    if (n <= 2){        return 1;    }    else{        return Fibonacci_1(n - 1) + Fibonacci_1(n - 2);    }}//迭代法int Fibonacci_2(int n){    int first = 1;    int second = 1;    int ret = 1;    for (int i = 3; i <= n; ++i){        ret = second + first;        second = first;        first = ret;    }    return ret;}//回溯法int Fibonacci(int n, int a, int b, int count){    if (n == count){        return b;    }    else{        return Fibonacci(n, b, a + b, ++count);    }}int Fibonacci_3(int n){    return Fibonacci(n, 0, 1, 1);}int main(){    cout << Fibonacci_1(12) << endl;    cout << Fibonacci_2(12) << endl;    cout << Fibonacci_3(12) << endl;    return 0;}
原创粉丝点击