函数递归与栈的实用
问题:求斐波那契数列的递归方法与非递归方法
栈是一种应用范围广泛的数据结构,适用于各种具有"后进先出"特性的问题。
递归函数是指在一个函数、过程或数据结构的定义中又应用了它自身的函数。
#include <iostream>
#include <stack>
using std::cout;
using std::endl;
using std::stack;
//非递归方法
int Fibonacci(int num)
{
stack<int> s;
int n=num;
while(n>1)
{
s.push(n);
n--;
}
int sum=1;
while(!s.empty())
{
n=s.top();
sum+=n;
s.pop();
}
return sum;
}
//递归方法
int fibonacci(int num)
{
if(num<=1)
return 1;
return num+fibonacci(num-1);
}