这个题目摆着是递归,所以你肯定不能用递归吧,但是我没想懂题意,还是别人的提示让我恍然大悟,递归超时用递推啊,明显!!
#include<iostream> #include<cstdio> using namespace std; int b,c,d,e,m,f; const int Mod=10000007; int main() { int n,caseno=0,cases,a[10005]; scanf("%d", &cases); while(cases--) { scanf("%d %d %d %d %d %d %d", &m, &b, &c, &d, &e, &f, &n); a[0]=m%Mod; a[1]=b%Mod; a[2]=c%Mod; a[3]=d%Mod; a[4]=e%Mod; a[5]=f%Mod; for(int i=6;i<=n;i++) a[i]=(a[i-1]+a[i-2]+a[i-3]+a[i-4]+a[i-5]+a[i-6])%Mod; printf("Case %d: %d\n",++caseno,a[n]); } return 0; }