[转]满足ai * aj = ak的最大值
时间: 2023-12-03 18:02:15 浏览: 32
好的,让我来回答你的问题。这是一个关于数组的问题,我们需要在给定的数组中找到满足条件 ai * aj = ak 的最大值。我们可以使用以下的方法来解决这个问题:
1. 首先,我们对数组进行排序,这样我们可以更容易地找到最大值。
2. 然后,我们使用两个嵌套的循环来遍历数组,对于每个元素 ai 和 aj,我们计算它们的乘积 ak,如果 ak 存在于数组中,那么我们更新最大值。
3. 最后,我们返回找到的最大值。
以下是代码实现的示例:
```
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin >> n;
vector<int> nums(n);
for(int i = 0; i < n; i++){
cin >> nums[i];
}
sort(nums.begin(), nums.end());
int ans = -1;
for(int i = n - 1; i >= 0; i--){
for(int j = i - 1; j >= 0; j--){
int product = nums[i] * nums[j];
if(binary_search(nums.begin(), nums.end(), product)){
ans = max(ans, product);
}
}
}
cout << ans << endl;
return 0;
}
```
希望能够帮到你!