测试点2过不去,只要将答案变量设置成long double
类型的可以了,然后输出的时候使用 %.2llf
就可以了
# include <iostream>
using namespace std;
int N;
double v;
long double sum = 0.0; // 总和sum必须要是long double类型,不然测试点2过不去
// 在{ 0.1, 0.2, 0.3, 0.4 }中
/*
(0.1)
(0.1, 0.2)
(0.1, 0.2, 0.3)
(0.1, 0.2, 0.3, 0.4)
(0.2)
(0.2, 0.3)
(0.2, 0.3, 0.4)
(0.3)
(0.3, 0.4)
(0.4)
0.1出现的次数 = 4 * 1
0.2出现的次数 = 3 * 2
0.3出现的次数 = 2 * 3
0.4出现的次数 = 1 * 4
通过规律可以发现每一位出现的次数 = (数组元素个数 - 它在数组中的索引) * 它在数组中的位置 【索引从0开始,位置从1开始】
*/
int main()
{
cin >> N;
for(int i=1;i<=N;++i){
scanf("%lf", &v);
sum = sum + (v * i * (N+1 - i));
}
printf("%.2llf\n", sum);
return 0;
}