求n位01串含连续至少2个1的串的个数。
#include<stdio.h>#include<math.h>
__int64 a[1000003];
int main()
{
int k;
scanf("%d",&k);
while(k--)
{
int n,i;
scanf("%d",&n);
if(n==1)
{
printf("0\n");
continue;
}
if(n==2)
{
printf("1\n");
continue;
}
a[1]=0;
a[2]=1;
for(i=3;i<=n;i++)
{
a[i]=(a[i-2]+a[i-1]+2^(i-2))%(1000000007);
}
printf("%I64d\n",a[n]);
}
return 0;
}