不相邻问题
/*给出n个位置,每个位置可以填充0和1,但有条件限制: 1不能相邻。求满足条件的序列的所有可能情况。*/ #include<iostream> using namespace std; __int64 a[47][2]; int main() { int T,n,i,s; a[1][0]=1;a[1][1]=1; /*按上面的递推公式求出n从1到46的结果存储在数组a[47][2]中。*/ for(i=2;i<=46;i++) { a[i][0] = a[i-1][0]+a[i-1][1]; a[i][1]=a[i-1][0]; } scanf("%d",&T); s=0; while(T--) { s++; scanf("%d",&n); printf("Scenario#%d\n",s); printf("%I64d\n",a[n+1][0]); if(T) printf("\n"); } return 0; }