时间限制:C/C++ 1秒,其他语言2秒
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
空间限制:C/C++ 32768K,其他语言65536K
64bit IO Format: %lld
题目描述
今天是Tabris和mengxiang000来到幼儿园的第3天,mengxiang000接到了一个布置会场的任务。
他需要将贵宾观众席的椅子排成一排,一共需要N个。
幼儿园只有两种椅子,所以他也只能使用两种椅子。(A类型和B类型)并且假设每种椅子的数量都是无限的。
而其如果想要摆置一个B类型的椅子,对应就需要必须有连续两个一起布置。换句话说,就是如果出现了B类型的椅子,其必须且只有两个连着B类型的椅子。
mengxiang000突然想知道对应N个椅子排成一列,他能够有多少种布置的方式.
输入描述:
本题包含多组输入第一行输入一个整数t,表示测试数据的组数 每组测试数据包含一行,输入一个整数N,表示一共需要摆放的椅子数量 t<=30 1<=N<=30
输出描述:
每组测试数据输出包含一行,表示一共有多少种布置的方式。
示例1
输入
2 2 4
输出
2 5
说明
第一个样例,AA,BB两种方案。 第二个样例,AAAA,BBBB,AABB,ABBA,BBAA五种方案 对于ABBB 因为有连续3个B类型椅子所以不可行
斐波那契数列;
#include<bits/stdc++.h>
using namespace std;
long long f[50];
int main()
{
f[1] = 1;
f[2] = 2;
for(int i = 3; i < 50; i++)
f[i] = f[i - 1] + f[i - 2];
int N;
cin >> N;
while(N--)
{
int n;
cin >> n;
cout << f[n] << endl;
}
return 0;
}