53 lines
740 B
C++
53 lines
740 B
C++
//有一个数据最后一位数字对不上
|
|
#include <iostream>
|
|
#include<cstdio>
|
|
#include<algorithm>
|
|
#include <cmath>
|
|
#include <cstdlib>
|
|
using namespace std;
|
|
const int N=1e8;
|
|
const int w=50;
|
|
double a[N/w+5];
|
|
int t,n;
|
|
int t1;
|
|
inline void cun()
|
|
{
|
|
int cur=1;
|
|
for(int i=1;i<=N;i++)
|
|
{
|
|
a[cur]+=(1.0/i);
|
|
if(i%w==0)
|
|
{
|
|
// printf("%llf,",a[cur]);
|
|
cur++;
|
|
a[cur]=a[cur-1];
|
|
}
|
|
}
|
|
}
|
|
//void ce()
|
|
//{
|
|
// cout<<cnt;
|
|
// for(int i=1;i<=cnt;i++)
|
|
// {
|
|
// cout<<pr[i]<<" ";
|
|
// }
|
|
//}
|
|
int main()
|
|
{
|
|
cun();
|
|
// ce();
|
|
scanf("%d",&t);
|
|
while(t--)
|
|
{
|
|
scanf("%d",&n);
|
|
int now=n/w;
|
|
double ans=a[now];
|
|
for(int i=now*w+1;i<=n;i++)
|
|
{
|
|
ans+=(1.0/i);
|
|
}
|
|
printf("Case %d: %.10lf\n",++t1,ans);//WA罪魁祸首 lf->double 不是llf
|
|
}
|
|
return 0;
|
|
}
|