定义为_Longlong类型,主要是避免越界
斐波那契数列的递归实现
_Longlong Fib1(size_t n)
{
if (n < 2)
return n;
else
return Fib1(n - 1) + Fib1(n - 2);
}
非递归实现
_Longlong Fib2(size_t n)
{
_Longlong *FibArr = new _Longlong[n + 1];
FibArr[0] = 0;
FibArr[1] = 1;
for (size_t idx = 2; idx <= n; ++idx)
{
FibArr[idx] = FibArr[idx - 1] + FibArr[idx - 2];
}
_Longlong ret = FibArr[n];
delete[] FibArr;
return ret;
}
主函数部分
int main()
{
size_t n = 10;
cout << Fib1(n) << endl;
cout << Fib2(n)<< endl;
getchar();
}