题意:对递归函数进行优化。
思路:易知此递归函数为一递推式,即数组第K个数为第K-6个数到第K-1个数之和,可以用循环写。
#include <bits/stdc++.h>
using namespace std;
const int mod = 10000007;
int f[10000+1000];
int main(void)
{
int T, cas = 1;
scanf("%d", &T);
while (T--)
{
memset(f, 0, sizeof(f));
int n;
for (int i = 0; i < 6; i++)
scanf("%d", &f[i]);
scanf("%d", &n);
for (int i = 6; i <= n; i++)
f[i] = (f[i-1]%mod+f[i-2]%mod+f[i-3]%mod+f[i-4]%mod+f[i-5]%mod+f[i-6]%mod)%mod;
printf("Case %d: %d\n", cas++, f[n]%mod);
}
return 0;
}