zoj 3182 Nine Interlinks 题目链接:http://acm.zju.edu.cn/onlinejudge/showProblem.do?problemCode=3182
递归
题目大意:主要就是那两个规则,最初所有环都在下面,第1个环随便上下,第i+1个环要想上或下,必须只有第i个在上面。
题目分析:分析逐步加环的上下过程可知,后与前有递推关系,列出五行即可发现规律a[i]=a[i-1]+2*a[i-2]+1;。
以下是代码:
#include<iostream>
using namespace std;
int main()
{
int t,n,a[35]={0,1,2};
for(int i=3;i<31;i++)//打表存结果
{
a[i]=a[i-1]+2*a[i-2]+1;
}
cin>>t;
while(t--)
{
cin>>n;
cout<<a[n]<<endl;
}
return 0;
}