递推递归练习--G(Fighting_小银考呀考不过四级)

来源:互联网 发布:有哪些数据开放平台 编辑:程序博客网 时间:2024/05/18 01:59

题目简述:一排座位,每两个人中间要有两个空位,求一共有多少种座法

解题思路:

一个座位——1种

两个座位——2种

三个座位——3种

四个座位——4+1=5种

五个座位——5+2+1=8种

……

n个座位——n+a[n-3]+a[n-4]+……+a[1]种

源代码:

#include <bits/stdc++.h>using namespace std;int main(){    int n,b[46],i,j;    b[0]=0;    for (i=1;i<=3;i++)        b[i]=i;    for (i=4;i<=45;i++)    {        b[i]=i;        for (j=i-3;j>=1;j--)        b[i]=b[i]+b[j];    }    while (cin>>n)        cout<<b[n]<<endl;    return 0;}
解题感想:把前几种情况列出来,找规律的题目。代码很短。恩……感觉都不难。。。可能是规律太好找了……


0 0