Fibonacci.h文件具体实现:
class Fibonacci
{
public:
Fibonacci();
~Fibonacci();
public:
static unsigned int GetFibonacciRecursive(unsigned int Num);
static unsigned int GetFibonacciNonRecursive(unsigned int Num);
};
Fibonacci.cpp 实现具体算法
#include "Fibonacci.h"
Fibonacci::Fibonacci()
{
}
Fibonacci::~Fibonacci()
{
}
// 递归求解的算法
unsigned int Fibonacci::GetFibonacciRecursive(unsigned int Num)
{
if (0 == Num)
{
return 0;
}
if (1 == Num)
{
return 1;
}
return GetFibonacciRecursive(Num - 1) + GetFibonacciRecursive(Num - 2);
}
//非递归求解的算法
unsigned int Fibonacci::GetFibonacciNonRecursive(unsigned int Num)
{
unsigned int CurFibonacciNum = 0;
unsigned int PrevFibonacciNum = 1;
unsigned int PrevPrevFibonacciNum = 0;
if (0 == Num)
{
return 0;
}
if (1 == Num)
{
return 1;
}
for (unsigned int i = 2; i <= Num; i++)
{
CurFibonacciNum = PrevFibonacciNum + PrevPrevFibonacciNum;
PrevPrevFibonacciNum = PrevFibonacciNum;
PrevFibonacciNum = CurFibonacciNum;
}
return CurFibonacciNum;
}