1. 程式人生 > >C語言經典演算法(八)——遞迴實現斐波那契數列的兩種方法

C語言經典演算法(八)——遞迴實現斐波那契數列的兩種方法

後繼續整理演算法並寫出自己的理解和備註。 C++實現的:遞迴實現斐波那契數列

1、 遞迴實現斐波那契數列Fib(n)
<1> 題目描述:輸入n值,求解第n項的斐波那契數列值
<2> 方法一:概念法
<3> 方法二:遞迴法
斐波那契數列值是值1 1 2 3 5 8 13前兩項之和為下一項

原始碼:
一、 遞迴實現斐波那契數列Fib(n)
1、 概念法

#include<iostream>
#include<assert.h>
using namespace std;
unsigned int Fib(unsigned
int n) { unsigned int fib1 = 1; unsigned int fib2 = 1; unsigned int fib; for(int i=3; i<=n; ++i)//原理直接法 { fib = fib1 + fib2; fib1 = fib2; fib2 = fib; } return fib; } void main() { unsigned int n; cout<<"請輸入n:"; cin>>n; cout
<<"第"<<n<<"項的斐波那契值為:>"<<Fib(n)<<endl; }

2、 遞迴法

#include<iostream>
#include<assert.h>
using namespace std;
unsigned int Fib(unsigned int n)
{
    if(n==1 || n==2)
        return 1;
    else
        return Fib(n-1)+Fib(n-2);
}
void main()
{
    unsigned
int n; cout<<"請輸入n:"; cin>>n; cout<<"第"<<n<<"項的斐波那契值為:>"<<Fib(n)<<endl; }