用 C++ 编一个程序,输入 n 个整数,找出其中的两个数 a 和 b ,使 AB 最大,输出出这个最大值。
时间: 2024-12-23 14:12:07 浏览: 11
在 C++ 中,你可以编写如下的程序来解决这个问题,这通常被称为“两数之和的最大乘积”。程序的基本思路是先将所有数字排序,然后取最大的前 n-1 个数相乘,因为数组中最大的两个数会出现在数组的最后面。
```cpp
#include <iostream>
#include <vector>
#include <algorithm>
int maxProduct(std::vector<int>& nums, int n) {
// 对数组进行排序
std::sort(nums.begin(), nums.end());
// 取最大的n-1个数相乘
long long result = 1; // 初始化结果为1防止溢出
for (size_t i = n - 1; i >= 0; --i) {
result *= nums[i];
}
return result;
}
int main() {
int n;
std::cout << "请输入数字的数量(n): ";
std::cin >> n;
std::vector<int> numbers;
std::cout << "请输入" << n << "个整数: ";
for (int i = 0; i < n; ++i) {
int number;
std::cin >> number;
numbers.push_back(number);
}
int maxMul = maxProduct(numbers, n);
std::cout << "最大乘积是: " << maxMul << std::endl;
return 0;
}
```
当你运行此程序并输入数字后,它会计算并显示两个最大数的乘积。请注意,如果输入的数有负数,并且你想找到的是两个正数的最大乘积,你需要调整代码以跳过负数。
阅读全文