这个题目摆着是递归,所以你肯定不能用递归吧,但是我没想懂题意,还是别人的提示让我恍然大悟,递归超时用递推啊,明显!!
#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;
}