题目链接:https://vjudge.net/problem/FZU-2037
题解:不要着急用java写,找找规律还是可以的
#include<iostream>
#include<cstdio>
using namespace std;
typedef long long ll;
const int mod=1e9+7;
const int N=1e6+10;
ll f[N],ans[N];
double a[N];
int main()
{
f[0]=1;
ans[0]=0;
a[0]=0;
for(int i=1;i<=1e6;i++)
{
f[i]=(f[i-1]*i)%mod;
ans[i]=(i*ans[i-1]%mod+f[i-1])%mod;
a[i]=a[i-1]+1.0/i;
}
int t,tt=0;
scanf("%d",&t);
while(t--)
{
int n;
scanf("%d",&n);
printf("Case %d: %lld %.6f\n",++tt,ans[n],a[n]);
}
return 0;
}