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)