用std::stack来模拟递归算法。
#include <iostream>
#include <string>
#include <stack>
//计算斐波那契第n位,从0开始 f(n)
using namespace std;
int main()
{
std::stack<int> s;
int n = 4;
s.push(n);
int res = 0;
// cout<<s.size();
while(s.size()!=0){
int temp = s.top();
s.pop();
if(temp <= 1) res+=temp;
else{
s.push(temp - 1);
s.push(temp - 2);
}
// if(s.empty())break;
}
cout<< res;
return 0;
}
s的状态变化