关于 long double
查看原帖
关于 long double
224978
optimize_2楼主2022/4/29 08:47

为啥 long double 第三个样例输出 -0.0000000000,改成 double 就对了啊

code:

#include <bits/stdc++.h>
#define N 100010
using namespace std;
typedef double ld;

int n;
ld a[N];
ld f[N], ans[N];

int main() {
    cin >> n;
    for (int i = 1; i <= n; i++) {
        cin >> a[i];
    }
    for (int i = 1; i <= n; i++) {
        f[i] = a[i] * (f[i - 1] + 1);
    }
    for (int i = 1; i <= n; i++) {
        ans[i] = ans[i - 1] + a[i] * (2 * f[i - 1] + 1);
    }
    printf("%.10f\n", ans[n]);
}
2022/4/29 08:47
加载中...