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

C++ 优化计算:用数学公式求整数序列不同元素对乘积之和

要计算整数序列中所有不同元素对的乘积之和,可以使用数学公式优化计算,避免双重循环。以下是C++实现: ```cpp #include <iostream> #include <vector> long long sum_of_pair_products(const std::vector<int>& A) { long long total_sum = 0; long long square_sum = 0; for (int num : A) { total_sum += num; square_sum += num * num; } // 公式:(总和的平方 - 平方和) / 2 return (total_sum * total_sum - square_sum) / 2; } int main() { int N; std::cin >> N; std::vector<int> A(N); for (int i = 0; i < N; ++i) { std::cin >> A[i]; } std::cout << sum_of_pair_products(A) << std::endl; return 0; } ``` 注意事项: 1. 使用`long long`防止大数溢出 2. 公式推导基于数学恒等式:(a+b+c)^2 = a^2 + b^2 + c^2 + 2(ab+ac+bc) 3. 时间复杂度优化为O(N),空间复杂度O(1) ######[AI写代码神器 | 278点数解答 | 2025-06-02 18:49:07]

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