测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A40893. 求和本题总分:10 分【问题描述】给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + ann 2 · ann 1 + ann 2 · an + ann 1 · an.【

填空题 较难

题目描述

求和

本题总分:10 分

【问题描述】

给定 n 个整数 a1, a2, · · · , an ,求它们两两相乘再相加的和,即

S = a1 · a2 + a1 · a3 + · · · + a1 · an + a2 · a3 + · · · + ann 2 · ann 1 + ann 2 · an + ann 1 · an.

【输入格式】

输入的第一行包含一个整数 n 。

第二行包含 n 个整数 a1, a2, · · · an。

【输出格式】

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

【样例输入】

4

1 3 6 9

【样例输出】

117

【评测用例规模与约定】

对于 30% 的数据,1 ≤ n ≤ 1000,1 ≤ ai ≤ 100。

对于所有评测用例,1 ≤ n ≤ 200000,1 ≤ ai ≤ 1000。

参考答案

#include <bits/stdc++.h> using namespace std; int arr[200000]={0}; int main() { long long out=0; int n,i,j; scanf("%d",&n); for(i=0;i<n;i++) scanf("%d",&arr[i]); for(i=0;i<n;i++) for(j=0;j<n;j++) { if(i==j) break; out+=arr[i]*arr[j]; } printf("%lld",out); return 0; }
上一题 下一题