NC14541. 布置会场(I)
描述
今天是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两种方案。C++14(g++5.4) 解法, 执行用时: 3ms, 内存消耗: 392K, 提交时间: 2020-10-09 21:10:37
#include<bits/stdc++.h> using namespace std; int main() { int T; cin>>T; vector<int> a(31,1); for(int i=2; i<=30; i++) a[i]=a[i-1]+a[i-2]; while(T) { int n; cin>>n; cout<<a[n]<<endl; T--; } return 0; }
C(clang 3.9) 解法, 执行用时: 51ms, 内存消耗: 344K, 提交时间: 2020-07-27 12:42:18
# include <stdio.h> int main(){ int n,m,j[30]={1,2},i=2; for(;i<30;i++){ j[i]=j[i-2]+j[i-1]; } scanf("%d",&n); while(n--){ scanf("%d",&m); printf("%d\n",j[m-1]); } return 0; }
C++ 解法, 执行用时: 3ms, 内存消耗: 376K, 提交时间: 2021-07-15 11:01:42
#include<bits/stdc++.h> using namespace std; int main() { int a[30],n,b,i=2; cin>>n;a[0]=1;a[1]=2; for(;i<30;i++)a[i]=a[i-1]+a[i-2]; for(i=0;i<n;i++){cin>>b;cout<<a[b-1]<<endl;} }
Python(2.7.3) 解法, 执行用时: 12ms, 内存消耗: 2820K, 提交时间: 2020-09-06 15:39:03
T=int(input()) while T : T-=1 n=int(input()) res=1 f=1 g=1 i=2 while i<=n : i+=1 res=f+g f=g g=res print (res)
Python3 解法, 执行用时: 29ms, 内存消耗: 4480K, 提交时间: 2021-12-16 16:32:04
t=int(input()) a=[0 for i in range(36)] a[1]=1 a[2]=2 for i in range(3,35): a[i]=a[i-1]+a[i-2] while t: t-=1 n=int(input()) print(a[n])