Problem Description
Given an integer
n
, we only want to know the sum of
1/k2
where
k
from
1
to
n
.
Input
There are multiple cases.
For each test case, there is a single line, containing a single positive integer n .
The input file is at most 1M.
For each test case, there is a single line, containing a single positive integer n .
The input file is at most 1M.
Output
The required sum, rounded to the fifth digits after the decimal point.
Sample Input
1 2 4 8 15
Sample Output
1.00000 1.25000 1.42361 1.52742 1.58044依然是打表,但是他会出现负数,取绝对值就好。然后还是错的。然后发现1000000之前数都不会变了。那大于1000000的输出之前就好。#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <stack> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; #define LL long long #define N 100005 #define mod 1000000007 double dp[1000000],sum=0,t; int main() { dp[0]=0; for(LL i=1;i<1000000;i++) { t=1.0/(i*i); sum+=t; dp[i]=sum; } LL n; while(~scanf("%lld",&n)) { if(n<0) n=-n; if(n>=1000000) n=999999; printf("%.5lf\n",dp[n]); } return 0; }
Problem Description
Given an integer
n
, we only want to know the sum of
1/k2
where
k
from
1
to
n
.
Input
There are multiple cases.
For each test case, there is a single line, containing a single positive integer n .
The input file is at most 1M.
For each test case, there is a single line, containing a single positive integer n .
The input file is at most 1M.
Output
The required sum, rounded to the fifth digits after the decimal point.
Sample Input
1 2 4 8 15
Sample Output
1.00000 1.25000 1.42361 1.52742 1.58044