1. 程式人生 > >【HDU 5879】Cure(暴力+優化)

【HDU 5879】Cure(暴力+優化)

題目大意:輸出k=1n1k2
n較大暴力不可。
打表發現是收斂的,因為要求保留到1e-5,n到110292以後在這個精度內不會再增,預處理這之前的答案,之後的輸出1.64493即可

程式碼如下:

#include <iostream>
#include <cmath>
#include <vector>
#include <cstdlib>
#include <cstdio>
#include <climits>
#include <ctime>
#include <cstring>
#include <queue>
#include <stack> #include <list> #include <algorithm> #include <map> #include <set> #define LL long long #define Pr pair<int,int> #define fread(ch) freopen(ch,"r",stdin) #define fwrite(ch) freopen(ch,"w",stdout) using namespace std; const int INF = 0x3f3f3f3f; const
int mod = 1e9+7; const double eps = 1e-8; const int maxn = 11234567; char arr[maxn]; int main() { //fread(); //fwrite(); while(~scanf("%s",arr)){ int len = strlen(arr); if(len > 6) puts("1.64493"); else{ int v; sscanf(arr,"%d"
,&v); if(v >= 110292) puts("1.64493"); else if(v >= 52447) puts("1.64492"); else { double ans = 0; for(int i=1;i<=v;i++){ ans += 1.0 / (1.0 * i * i); } printf("%.5f\n",ans); } } } return 0; }