转换成走格子问题
以5个格子为例
1 2 3 4 5
2 5 9 14
5 14 28
14 42
42
不难发现其中规律,如果想要详细了解可以去这个链接
http://blog.csdn.net/u014609111/article/details/52637877
我的C++代码:
/*
n个元素的入栈顺序有多少种出栈顺序?
1个元素:1种
2个元素:2种
3个元素:5种
4个元素:14种
5个元素:42种
*/
#include<iostream>
using namespace std;
int arr[100];
void fun(int len)//len 为当前层需要计算的数的数量;5个数第一次循环时 len=4;
{
arr[0]=arr[1];
for(int i=1; i<len;i++)
arr[i]=arr[i-1]+arr[i+1];
}
int main()
{
int N;
cin>>N;//求N个元素进出栈,可能出现可能结果数量
for(int i=1; i<=N;i++)
arr[i-1]=i;
for(int i=N-1; i>0; i--)
fun(i);
cout<<arr[0];
return 0;
}