关于算法-数据结构:PAT甲级1104-Sum-of-Number-Segments

题目粗心:

给定一个序列,求出所有片段的和

算法思路:

其实就是找法则,也不晓得为啥第一次写的时候齐全找不进去,看答案都看不懂,第二次就一下看进去了,画个图看看就明确了

留神点:

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;
}

评论

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理