題意:對遞歸函數進行優化。
思路:易知此遞歸函數爲一遞推式,即數組第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;
}