2-求和(蓝桥杯)

给定n个整数a1,a2,⋅⋅⋅,an,求它们两两相乘再相加的和,即:
S=a1⋅a2+a1⋅a3+⋯+a1⋅an+a2⋅a3+⋯+an−2⋅an−1+an−2⋅an+an−1⋅an
输入的第一行包含一个整数n。
第二行包含n个整数a1,a2,⋯,an。
输出一个整数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)

  • a3a4 a3(sum-a3)

Original: https://blog.csdn.net/m0_57209427/article/details/128703245
Author: 月亮被咬碎成星星
Title: 2-求和(蓝桥杯)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/812532/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球