题目
代码
import java.util.Scanner;
public class lqb13_A组03求和 {
public static void main(String[] args) {
/**
* 输入 :
* 4
* 1 3 6 9
*
* 输出:
* 117
*
* 分析:
* 整个数组的sum=19
* 1*3+1*6+1*9=18 1*(3+6+9)=18 1*(19-1)=18
* 3*6+3*9=45 3*(6+9)=45 3*(19-1-3)=45
* 6*9=54 6*(19-1-3-6)=54
* 18+45+54=117
*
* 由此可以看出:
* 先求出整个数组的和
* 同时sum每次减去arr[i]
*
* 时间复杂度O(N)
* 可AC
*/
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
long[] arr = new long[n];
long sum = 0;
long ans = 0;
for (int i = 0; i < n; i++) {
arr[i] = scanner.nextLong();
sum += arr[i];
}
for (int i = 0; i < n; i++) {
sum -= arr[i];
ans += arr[i] * sum;
}
System.out.println(ans);
}
}