题目链接:Cure
题目大意:给你一个n,累加1/x^2,x从1到n,问结果是多少
题目思路:直接打表发现1.64493是个极限值,然后打到100w就好(其实就几十w就到了,不过为了后面判断方便就取个100w的整数吧)然后用字符串存n就可以了,水题,卡了半天。
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
double sum[1000000];
char n[5000000];
int main(){
sum[1] = 1.0;
for(ll i = 2;i < 1000000;i++)
sum[i] = sum[i-1] + (1.0/i)*(1.0/i);
while(~scanf("%s",n)){
if(strlen(n) > 6) printf("1.64493\n");
else{
int summ = 0;
for(int i = 0;i < strlen(n);i++)
summ = summ*10+(n[i]-'0');
printf("%.5lf\n",sum[summ]);
}
}
return 0;
}