题目粗心:
给定一个序列,求出所有片段的和
算法思路:
其实就是找法则,也不晓得为啥第一次写的时候齐全找不进去,看答案都看不懂,第二次就一下看进去了, 画个图看看就明确了
留神点:
1、应用双层循环测试点 2 和 3 会超时。
2、测试点 2 数据太大,应用 double 会出错,得换成 long double,2020 年 5 月前不会出错,应该是新增加的数据点
提交后果:
AC 代码:
#include <cstdio>
using namespace std;
int main(){
int N;
scanf("%d",&N);
long double a[N];
for (int i = 0; i < N; ++i) {scanf("%Lf",&a[i]);
}
long double ans = 0;
for (int i = 0; i < N; ++i) {
// 迭代 N 次
ans += a[i]*(N-i)*(i+1);//a[i]在第 i + 1 轮迭代中呈现了 (N-i) 次,总的迭代轮次为 i +1
}
printf("%.2Lf",ans);
return 0;
}