您的位置:首页 > 其它

hdu 5879 Cure

2016-09-18 10:37 288 查看
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.

 

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
);
}
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.

 

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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: