C2-Zexal的排座位

考察点

斐波那契数列

题目描述

在一个班级中挑选N个学生排成一列座位(保证有足够多的男生与足够多的女生),要求座位序列中男生互不相邻,求解有多少种排列方式?(挑选男生与女生的数量与排列方式均为任意)

例如挑选三个学生,那么所有排列为: 女女女、女男女,男女女,女女男,男女男

输入

第一个数为学生总数N(0<N<30)

输出

只有一行,保证男生与男生不相邻,座位排列的所有情况数目的结果

输入样例

 3

输出样例

 5

代码

#include <iostream>
#include <stdio.h>
using namespace std;
long long n,a[33][2],mod = 1000000007;
int main()
{
    a[1][0] = 1;
    a[1][1] = 1;
    for(int i = 2; i <= 30; i++)
    {
        a[i][0] = a[i-1][1] + a[i-1][0];
        a[i][1] = a[i-1][0];
    }
    while(~scanf("%d",&n))
    {
        printf("%d\n",a[n][1]+a[n][0]);
    }
    return 0;
}

猜你喜欢

转载自www.cnblogs.com/kubab119/p/11823273.html
今日推荐