酷代码 AI
菜单
服务商
DeepSeek字节豆包讯飞星火
更多选项

使用C++解决P3309乘积求和问题

以下是解决该问题的C++代码: ```cpp #include <iostream> using namespace std; int main() { int n; // 读取整数n cin >> n; int a[200005]; // 读取n个整数 for (int i = 0; i < n; i++) { cin >> a[i]; } long long sum = 0; // 双重循环计算两两相乘再相加的和 for (int i = 0; i < n; i++) { for (int j = i + 1; j < n; j++) { sum += (long long)a[i] * a[j]; } } // 输出结果 cout << sum << endl; return 0; } ``` ### 代码解释 1. **输入读取**:首先读取整数`n`,表示有`n`个整数。然后使用循环读取这`n`个整数,存储在数组`a`中。 2. **计算两两相乘的和**:使用双重循环遍历数组,外层循环控制第一个数的索引`i`,内层循环控制第二个数的索引`j`,且`j`从`i + 1`开始,避免重复计算。将每对数字相乘的结果累加到变量`sum`中。 3. **输出结果**:最后输出计算得到的和`sum`。 ### 复杂度分析 - **时间复杂度**:$O(n^2)$,因为使用了双重循环。 - **空间复杂度**:$O(n)$,主要用于存储输入的整数数组。 ######[AI问答 | 396点数解答 | 2026-05-10 16:01:36]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]