题目:跳舞毯
思路:递归水题,n-1时,由B,C跳回A的种数是f(n-1),对于n-2的情况就是,选择B,C中一个点,跳过去,然后跳回A,因此种数是2*f(n-2)
所以 f(n)=f(n-1)+2*f(n-2)
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#include <cstdio> #include <iostream> #include <cstring> #include <algorithm> #include <cmath> using namespace std; int f[1010]; int main() { f[0]=0; f[1]=0; f[2]=2; for(int i=3;i<1010;i++) f[i]=(f[i-1]+2*f[i-2])%10000; int n; while(scanf("%d",&n)!=EOF,n) { printf("%d ",f[n]); } return 0; }