一道水题……坑的是没告诉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;
}
本文介绍了一个使用C++解决数学问题的简单程序。该程序读取一个字符串形式的大整数N,并计算从1到N的所有整数平方倒数之和。文章通过预计算并存储平方倒数和的方式,提高了运行时效率。
970

被折叠的 条评论
为什么被折叠?



