前辍和—简单的求和

Description

image

Input

第一行包含一个整数 n
第二行包含n个整数 a1,a2·····an

Output

输出一个整数s表示所求的和。请使用合适的数据类型进行运算。

Sample Input

4
1 3 6 9

Sample Output

117

More Info

分析

通过题目我们很容易想到a1要从a2乘到an,同样的a2从a3乘到an,知道an-1乘以an,所以我们可以直接提取a1到an让他们去与他们后面的数的和相乘,就是一道简单的前辍和问题。

代码实现

#include <iostream>
using namespace std;
int main() {
    int n;
    cin >> n;
    long long sum = 0; 
    int numbers[n];
    long long presum[n + 1] = {0}; 
    for (int i = 0; i < n; i++) {
        cin >> numbers[i];
        presum[i + 1] = presum[i] + numbers[i];
    }
    for (int i = 0; i < n; i++) {
        sum += numbers[i] * (presum[n] - presum[i + 1]);
    }
    cout << sum << endl;
    return 0;
}
posted @ 2023-07-23 05:58  LongDz  阅读(14)  评论(0)    收藏  举报