2-求和(蓝桥杯)

问题描述

给定 n n 个整数 a_1, a_2, · · · , a_n a1, a2,⋅⋅⋅, an ,求它们两两相乘再相加的和,即:
S=a_{1} \cdot a_{2}+a_{1} \cdot a_{3}+\cdots+a_{1} \cdot a_{n}+a_{2} \cdot a_{3}+\cdots+a_{n-2} \cdot a_{n-1}+a_{n-2} \cdot a_{n}+a_{n-1} \cdot a_{n} S= a1⋅ a2+ a1⋅ a3+⋯+ a1⋅ an+ a2⋅ a3+⋯+ an−2⋅ an−1+ an−2⋅ an+ an−1⋅ an

输入格式

输入的第一行包含一个整数 n n
第二行包含 n n 个整数 a_1,a_2,\cdots, a_n a1, a2,⋯, an

输出格式

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

样例输入

4
1 3 6 9

样例输出

117

评测用例规模与约定

运行限制

最大运行时间:1s
最大运行内存: 512M

代码:

public class 求和 {

    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        long n=scanner.nextLong();
        long[] arr = new long[(int) n];
        long sum=0;
        for (int i = 0; i < n; i++) {
            arr[i]=scanner.nextInt();
            sum+=arr[i];
        }
        long res=0;
        for (int i = 0; i < arr.length; i++) {
            sum=sum-arr[i];
            res+=sum*arr[i];
        }
        System.out.println(res);
    }
}

sum

* a1*(a2+a3+a4) a1*(sum-a1) sum-a1

* a2*(a3+a4) a2*(sum-a2)

* a3*a4 a3*(sum-a3)

你可能感兴趣的:(蓝桥杯备战题,算法,java)