给定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/
转载文章受原作者版权保护。转载请注明原作者出处!