2018TYUT暑期ACM模拟赛(7)
B - Cure HDU - 5879
题意:很简单求1-n的(1/k/k)的和。
思路:注意点:1)n的值很大 2)打表不能直接i*i要先出 3)当n在一定大时候收敛到一个值
#include<iostream>
#include<cstdio>
#include<cstring>
using namespace std;
const int maxn=1000000+10;
double a[maxn];
int main()
{
string n;
a[0]=0;
for(int i=1;i<=1e6;i++)
{
a[i]=a[i-1]+(double)(1.0/i/i);//这里不能直接i*i
}
while(cin>>n)
{
if(n.size()>=7)
printf("%.5lf\n",a[1000000]);
else
{
int t=0;
for(int i=0;i<n.size();i++)
t=t*10+n[i]-'0';
printf("%.5f\n",a[t]);
}
}
return 0;
}