/**
* 1.解题思路:将数列中的每个数字读取到temp中,假设我们选取的片段中包括temp;
* 且这个片段的首尾指针分别为p和q,那么对于p,有i种选择,即 1、2...i
* 对于q,有n-i+1种选择,即 i、i+1...n
* 所以p和q组合形成的首尾片段有i * (n-i+1)种
* 因为每个里面都会出现temp,所以temp引起的总和为temp * i * (n – i + 1)
* 遍历完所有数字,将每个temp引起的总和都累加到sum中,最后输出sum的值
*
* 2.参考博客:https://www.liuchuo.net/archives/448
**/
#include <iostream>
using namespace std;
int main() {
int n;
cin >> n;
double sum = 0.0, temp;
for (int i = 1; i <= n; i++) {
cin >> temp;
sum = sum + temp * i * (n - i + 1);
}
printf("%.2f", sum);
return 0;
}
1049 数列的片段和
最新推荐文章于 2020-04-24 15:29:25 发布