经分析可得如下递推式:
S_{i} = S_{i-1} - (i - 1) + n - (i - 1)。S_{i}代表第i个数字在所有连续序列中出现的次数。n代表数字个数。
#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstdlib>
int main(void)
{
int n, i;
double sum = 0.0, *arr;
scanf("%d", &n);
arr = new double[n + 1];
for (i = 1; i <= n; i++) {
scanf("%lf", arr + i);
}
double si = 0;
for (i = 1; i <= n; i++) {
si = si - (i - 1) + n - (i - 1);
sum += arr[i] * si;
}
printf("%.2lf", sum);
delete[] arr;
return 0;
}