已知a+b=c,求a*b最大值C++代码
时间: 2024-09-27 15:07:45 浏览: 49
常见c++代码模版,力扣常见题型模版(含答案)
在C++中,要解决这个问题,我们通常需要找到使得(a, b)乘积最大的两个数,满足它们相加等于给定的c,并且假设a和b都是正整数。由于a和b的最大乘积会在两者接近且尽可能大的时候取得,我们可以从c的一半开始向下枚举,因为较大的一个数减去较小的一个数会逐渐变小。
这是一个简单的线性搜索算法。以下是对应的C++代码:
```cpp
#include <iostream>
using namespace std;
int maxProduct(int a, int b, int c) {
if (a > b) {
// 如果a更大,交换a和b
int temp = a;
a = b;
b = temp;
}
// 取值范围内的最大乘积
for (int i = a; i <= b; ++i) {
if (c - i >= 0 && (c - i) * i > a * b) {
a = i;
b = c - i;
}
}
return a * b;
}
int main() {
int c;
cout << "请输入一个整数c: ";
cin >> c;
cout << "当a+b=" << c << "时,a*b的最大值为: " << maxProduct(1, 1, c) << endl;
return 0;
}
```
在这个代码里,`maxProduct`函数接收三个整数a、b和c作为输入,然后返回它们相加等于c时的最大乘积。
阅读全文