Description
Input
Output
Sample Input
Sample Output
Hint
We can see when the length equals to 4. We can have those chains: 0000,0001,0010,0011 0100,0110,0111,1000 1001,1100,1110,1111
有一串由n个珠子连成的链 每个珠子的标号只能是 0或1 求总共有多少种不同的排列
一开始还在想是不是要用到位运算 没想到竟然是递推= =
#include<cstdio>
#include<iostream>
#include<bitset>
#include<algorithm>
using namespace std;
int a[10000+10];
int main()
{
int n;
int i,j;
a[0]=1;
a[1]=2;
a[2]=4;
a[3]=7;
a[4]=12;
for(i=5;i<=10000;i++)
{
a[i]=(a[i-1]+a[i-2]+a[i-4])%9997;
}
while(scanf("%d",&n)!=EOF)
{
if(n==-1) break;
printf("%d\n",a[n]);
}
return 0;
}
原文:http://www.cnblogs.com/sola1994/p/4074260.html