以下是解决该问题的 C++ 代码: ```cpp #include <iostream> #include <vector> #include <climits> // 函数用于计算 (a[i] + a[j]) * a[k] 的最小值 int findMinValue(const std::vector<int>& A) { int n = A.size(); // 初始化最小值为最大整数值 int minVal = INT_MAX; // 遍历所有可能的三元组 (i, j, k) for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { if (i == j) continue; // 确保 i 和 j 不相同 for (int k = 0; k < n; ++k) { if (k == i || k == j) continue; // 确保 k 与 i 和 j 都不相同 // 计算 (a[i] + a[j]) * a[k] 的值 int currentVal = (A[i] + A[j]) * A[k]; // 更新最小值 if (currentVal < minVal) { minVal = currentVal; } } } } return minVal; } int main() { std::vector<int> A = {1, 2, 3, 4}; // 示例数组 int result = findMinValue(A); std::cout << "最小值是: " << result << std::endl; return 0; } ``` 代码解释 1. 函数 `findMinValue`:该函数接受一个整数向量 `A` 作为参数,用于计算 `(a[i] + a[j]) * a[k]` 的最小值。 - 初始化 `minVal` 为 `INT_MAX`,用于存储最小值。 - 使用三重循环遍历所有可能的三元组 `(i, j, k)`。 - 确保 `i`、`j` 和 `k` 互不相同。 - 计算 `(a[i] + a[j]) * a[k]` 的值,并更新 `minVal`。 2. 主函数 `main`:创建一个示例数组 `A`,调用 `findMinValue` 函数计算最小值,并输出结果。 额外需要注意的逻辑点 1. 在三重循环中,要确保 `i`、`j` 和 `k` 互不相同,避免重复计算。 2. 初始化 `minVal` 为 `INT_MAX`,以确保可以正确更新最小值。 3. 注意数组元素的范围,避免整数溢出。如果数组元素可能很大,需要考虑使用 `long long` 类型。 [2025-07-30 14:20:21 | AI写代码神器 | 619点数解答]