题目链接:1049 数列的片段和
思路
- 可以发现每个元素出现的次数为自己的序号乘总数减序号,依次读取每位进行累加即可。
- 测试点2无法通过的原因是double精度问题,在累加过程中产生了误差,选用更大精度的long double型数据,问题得以解决。
代码
#include <iostream>
using namespace std;
int main(){
int N;
long double sum = 0,num;
cin >> N;
for(int i=0;i<N;i++){
cin >> num;
sum += num * (N - i) * (i + 1);
}
printf("%.2Lf",sum);
return 0;
}