递归递推练习 G
2017-04-01 19:37
218 查看
代码:
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,n;
long long
int a[46];
a[0]=1,a[1]=1;a[2]=2;a[3]=3;a[4]=5;
while(cin>>n)
{for(i=5;i<=n;i++)
a[i]=a[i-1]+a[i-3]+1;
cout<<a[n]<<endl;
}
return 0;
}
分析:
分析题目,找到递推的关系,当有I个座位的时候可能性是i-1个和i-3个的时候的和加上全坐的一种情况;
#include<bits/stdc++.h>
using namespace std;
int main()
{
int i,n;
long long
int a[46];
a[0]=1,a[1]=1;a[2]=2;a[3]=3;a[4]=5;
while(cin>>n)
{for(i=5;i<=n;i++)
a[i]=a[i-1]+a[i-3]+1;
cout<<a[n]<<endl;
}
return 0;
}
分析:
分析题目,找到递推的关系,当有I个座位的时候可能性是i-1个和i-3个的时候的和加上全坐的一种情况;