题目:小银坐座位,每两个人之间必须有两个空座,每排至少坐一个人,一共有多少种坐法。
解题思路:找出其中的规律,即当n>=4的时候a[i]=a[i-1]+a[i-3]+1,当n<4的时候定义数组时给它初始化好。
细节处理:分为n<4和n>=4来考虑。
代码:#include<bits/stdc++.h>
using namespace std;
int main()
{
int n,i,a[46]={0,1,2,3};
while(cin>>n)
{
if(n<4)
cout<<a[n]<<endl;
if(n>=4)
{for(i=4;i<=n;i++)
a[i]=a[i-1]+a[i-3]+1;
cout<<a[n]<<endl;}
}
return 0;
}
感想:做题时应该仔细思考规律然后再写代码