Cure
Time Limit: 3000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others)Total Submission(s): 1133 Accepted Submission(s): 377
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
Source
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
double num[] = new double[200000];
Scanner cin = new Scanner(System.in);
java.text.DecimalFormat df =new java.text.DecimalFormat("#.00000");
num[0] = 0;
for(int i=1;i<200000;i++)
{
num[i] = num[i-1]+1.0/i/i;
}
String str;
while(cin.hasNext())
{
str = cin.nextLine();
if(str.length()<=6)
{
int n = 0;
for(int i =0 ; i<str.length();i++)
{
n = n*10+(str.charAt(i)-'0');
}
if(n<=200000){
System.out.println(df.format(num[n]));
}
else
System.out.println("1.64493");
}
else
System.out.println("1.64493");
}
}
}