出栈序列统计,不知道为什么显示答案错误

img

以下是我的代码,不知道为什么显示答案错误


#include<iostream>
using namespace std;
//m表示等待进栈元素个数,n表示栈中元素个数。
int sta(int m,int n){
    if(m==0&&n==0)return 1;
    else if(m>0&&n>0)return sta(m-1,n+1)+sta(m,n-1);//既出栈又进栈
    else if(m>0&&n==0)return sta(m-1,n+1);//只进栈不出栈
    else if(m==0)return sta(m,n-1);//只出栈不进栈
}
int main(){
    //freopen("d:\\aaa\\test.txt","r",stdin);
    int m;
    cin>>m;    
    //初始条件是有m个元素等待进栈,栈中有0个元素.
    cout<<sta(m,0);
    return 0;
}

没太懂你的递归思路......