一道水题……坑的是没告诉N的范围。
N要用字符串输入然后转化为整数。
#include<stdio.h>
#include<iostream>
#include<memory.h>
#include<stdlib.h>
#include<cstdio>
#include<cstring>
#include<queue>
#include<set>
#include<algorithm>
using namespace std;
const int MAXN = 250000;
const int INF = 0x3f3f3f3f;
typedef long long LL;
int T, N, M;
double a[MAXN + 10];
double final = 1.64493;
char str[MAXN];
int CalN()
{
N = 0;
for (int i = 0; str[i]; i++)
{
N = N * 10 + str[i] - '0';
if (N > MAXN)
{
N = MAXN;
break;
}
}
return N;
}
int main() {
int i;
double sum = 0.0;
a[0] = 0;
for (i = 1; i <= MAXN; i++)
{
sum += 1.0 / i / i;
a[i] = sum;
}
int T;
while (scanf("%s", str) != EOF)
{
N = CalN();
printf("%.5lf\n", a[N]);
}
return 0;
}