在论坛上看到别人推出来的,说说我的理解。
f[n]=f[n-1]+2*f[n-2]
第n项相当于在 n-2 项前加BA 和 CA,在n-1项前加 B 或 C。
之间并没有出现重复。
#include <iostream>
using namespace std;
int main()
{
int a[1001],i,n;
a[1]=0;
a[2]=2;
for(i=3;i<=1000;i++)
a[i]=(a[i-1]+2*a[i-2])%1000;
while(scanf("%d",&n)!=EOF && n)/
printf("%d/n",a[n]);
return 0;
}