蒟蒻之栈模拟递归

书上的例子

 1 #include <iostream>            /*顺序栈*/
 2 using namespace std;
 3 #define size 50
 4 typedef struct node
 5 {
 6     int data[size][2];        /*每一层参数+当前返回值*/
 7     int top;            
 8 }stacknode;
 9 int main()
10 {
11     int n;
12     stacknode s;
13     s.top=0;
14     while(cin>>n)
15     {
16         s.data[s.top][0]=n;
17         s.data[s.top++][1]=0;
18         while(n>2)
19         {
20             n--;
21             s.data[s.top][0]=n;
22             s.data[s.top++][1]=0;
23         }
24         s.data[s.top][0]=1;
25         s.data[s.top][1]=1;
26         while(s.top!=-1)
27         {
28             s.data[s.top-1][1]=s.data[s.top][1]*s.data[s.top-1][0];
29             s.top--;
30         }
31         cout<<s.data[s.top+1][1]<<endl;
32     }
33 }

 

posted @ 2015-07-22 20:54  御心飞行  阅读(143)  评论(0编辑  收藏  举报