原本以为题目有点难度,要用排列组合做,但当我写几个数之后,就呵呵了
比如输入3,结果是000,001,010,100,101,所以答案是5,不能有连续的1;
再如输入4,结果是0000,0001,0010,0100,1000,0101,1010,1001,答案是8,这让我想到斐波那契数列,优化了解题方法
#include<stdio.h>
int a[1010]={0,2,3,5};
int main()
{
int t,count=1;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
int i;
for(i=3;i<=n;i++)
a[i]=a[i-1]+a[i-2];
printf("Scenario #%d:\n",count++);
printf("%d\n\n",a[n]);
}
return 0;
}