看到题目想起了南非世界杯的苍蝇声。。。。
直接观察出来是斐波拉契数列。。AC了。。
后来想了一下就是递归,最后一位是0,那前面的就可以是f(n-1)种情况,最后一位是1,前面一位必是0,再前面也可以是f(n-2)种情况,所以f(n)=f(n-1)+f(n-2)
#include <cstdio>
using namespace std;
int main(){
long long a[46];
a[1]=2,a[2]=3;
for(int i=3;i<46;i++)
a[i]=a[i-1]+a[i-2];
int nCase;
scanf("%d",&nCase);
for(int i=1;i<=nCase;i++){
int n;
scanf("%d",&n);
printf("Scenario #%d:\n",i);
printf("%lld\n",a[n]);
if(i!=nCase)printf("\n");
}
return 0;
}