C++实现:寻找整数数组的黄金分隔点,附代码与注意要点
```cpp #include <iostream> #include <vector> // 此函数用于寻找黄金分隔点 int findGoldenSplitPoint(const std::vector<int>& arr) { int n = arr.size(); // 先计算数组所有元素的总和 int totalSum = 0; for (int num : arr) { totalSum += num; } // 用于存储当前左侧元素的和 int leftSum = 0; for (int i = 0; i < n; ++i) { // 计算右侧元素的和 int rightSum = totalSum - leftSum - arr[i]; // 判断是否满足分隔点条件 if (leftSum == 2 * rightSum) { return i + 1; // 下标从1开始 } // 更新左侧元素的和 leftSum += arr[i]; } // 若未找到符合条件的分隔点,返回 -1 return -1; } int main() { int n; std::cin >> n; std::vector<int> arr(n); for (int i = 0; i < n; ++i) { std::cin >> arr[i]; } // 调用函数寻找黄金分隔点 int result = findGoldenSplitPoint(arr); std::cout << result << std::endl; return 0; } ``` 额外注意的逻辑点 1. 注意数组下标在本题中是从1开始的,而在C++中数组下标是从0开始的,所以返回结果时要进行 +1 操作。 2. 在计算右侧元素和的时候,要注意减去当前分隔点元素的值,避免重复计算。 3. 代码中先计算总和可以减少后续的重复计算,提高效率,在其他类似的需要计算总和的问题中可以借鉴此思路。 ######[AI写代码神器 | 437点数解答 | 2025-08-03 21:16:30]
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)36
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)362
- 工程师必知:软件系统用户文档编写九大要点揭秘(百度文心 | 350点数解答 | 2023-11-09 18:23:53)206
- C++实现计算最少添加数字次数以匹配两个数组元素(字节豆包 | 714点数解答 | 2026-03-08 19:44:54)23
- 手把手教你:从安居客大连二手房页面精准爬取关键信息!(GPT | 854点数解答 | 2024-11-02 08:56:33)337
- 手把手教你:从安居客大连二手房页面精准爬取关键信息的解析函数(GPT | 792点数解答 | 2024-11-02 08:58:39)300
- Python:轻松提取10.0到99.0小数的整数部分(字节豆包 | 136点数解答 | 2026-01-11 19:23:18)50
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)329
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)342
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)335
- C++与Python:按特定顺序输入输出数据并保留浮点数两位小数的实现(字节豆包 | 168点数解答 | 2024-10-08 22:07:03)340
- C语言:按特定顺序读入再输出,含浮点数精确格式处理(字节豆包 | 105点数解答 | 2024-10-08 22:07:29)349