您的位置:首页 > 大数据 > 人工智能

杭电1023 train problem2

2016-05-15 11:31 387 查看
1.递归(time limit exceeded)但是结果是对的,所以也记下来吧!

#include<iostream>
void calcu(int inNum, int outNum, long long &sum);
using namespace std;
int main()
{
int n;
while (cin >> n)
{
long long sum=0;
calcu(0, n, sum);
cout << sum << endl;
}
return 0;
}
void calcu(int inNum, int outNum, long long&sum)//inNum在栈中的个数,outNum还未入栈的个数,sum计数
{
if (outNum == 0)//全都入过栈了
{
sum += 1;
return;
}
else if (inNum == 0) calcu(1, outNum - 1, sum);//栈中无元素,只能入栈
else //栈中有元素
{
calcu(inNum - 1, outNum, sum);//出栈
calcu(inNum + 1, outNum - 1, sum);//或者入栈
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: