Fibonacci数列的递归与非递归实现

xiaoxiao2021-02-28  85

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; }
转载请注明原文地址: https://www.6miu.com/read-52981.html

最新回复(0)