Cure
Given an integer nn, we only want to know the sum of 1/k21/k2 where kk from 11 to nn.
Input
There are multiple cases.
For each test case, there is a single line, containing a single positive integer nn.
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
#include <iostream>
#include <string.h>
#include <cstdio>
using namespace std;
double Ta[1000000];
int main(){
char n[1000000];
Ta[1]=1.0;
for(int i=2;i<1000000;++i){
Ta[i]=Ta[i-1]+(1.0/i)*(1.0/i);
}
while(~scanf("%s",n)){
int num=0;
if
(strlen(n)>6) printf("1.64493\n");
else
{
for(int i=0;i<strlen(n);i++){
num=num*10+(n[i]-'0');
}
printf("%.5f\n",Ta[num]);
}
}
}