每组数据包含一个整数N(1≤N≤1000000)N(1 \leq N \leq 1 000 000)N(1≤N≤1000000)。
Output
对于每组数据,先输出一行 Case #i: 然后输出结果,对100000000710000000071000000007取模。
Sample Input
2
1
3
Sample Output
Case #1:
1
Case #2:
4
#include <stdio.h>
const int mod=1000000007;
const int maxn=1000000+1000;
long long dp[maxn];
int main()
{
int t,g=1;
scanf("%d",&t);
dp[1]=1,dp[2]=2;
for(long long i=3;i<maxn;i++)
{
dp[i]=(dp[i-2]*(i-1)+dp[i-1])%mod;
}
while(t--)
{
int n;
scanf("%d",&n);
printf("Case #%d:\n",g++);
printf("%I64d\n",dp[n]);
}
return 0;
}