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

C++ 实现数列中长度为 K 的连续部分总和计算

以下是使用 C++ 解决该问题的代码: ```cpp #include <iostream> #include <vector> using namespace std; int main() { int N, K; // 输入 N 和 K cin >> N >> K; vector<int> a(N); // 输入数列 a for (int i = 0; i < N; i++) { cin >> a[i]; } long long sum = 0; // 计算第一个长度为 K 的连续部分的和 long long currentSum = 0; for (int i = 0; i < K; i++) { currentSum += a[i]; } sum += currentSum; // 滑动窗口计算后续长度为 K 的连续部分的和 for (int i = K; i < N; i++) { // 减去窗口最左边的元素,加上窗口最右边的元素 currentSum = currentSum - a[i - K] + a[i]; sum += currentSum; } // 输出结果 cout << sum << endl; return 0; } ``` ### 代码解释 1. **输入处理**:首先读取整数 `N` 和 `K`,然后读取长度为 `N` 的整数数列 `a`。 2. **计算第一个长度为 `K` 的连续部分的和**:使用一个循环计算数列前 `K` 个元素的和,并将其累加到 `sum` 中。 3. **滑动窗口计算后续部分的和**:使用一个循环,每次减去窗口最左边的元素,加上窗口最右边的元素,更新当前和 `currentSum`,并将其累加到 `sum` 中。 4. **输出结果**:最后输出总和 `sum`。 ######[AI问答 | 435点数解答 | 2026-05-10 16:08:53]

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