已知c,且a+b=c,(a,b都是正整数),求a*b的最大值,用JAVA编写
时间: 2024-09-27 18:07:27 浏览: 78
java代码-求最大公约数和最小公倍数的程序
这是一个经典的优化问题,通常可以用动态规划或者贪心算法解决。我们可以考虑使用枚举法,因为范围不大(a、b都为正整数)。这里是一个简单的Java程序来找到满足条件下的最大乘积:
```java
public class Main {
public static void main(String[] args) {
int c = 10; // 你可以修改这个变量来测试不同的结果
int maxProduct = getMaxProduct(c);
System.out.println("当 a + b = " + c + " 时,a * b 的最大值为: " + maxProduct);
}
public static int getMaxProduct(int targetSum) {
int result = 0;
for (int a = 1; a <= targetSum / 2; a++) { // 枚举a从1到目标和的一半
int b = targetSum - a; // 根据公式计算b
if (a > 0 && b > 0) { // 检查a和b是否有效
result = Math.max(result, a * b); // 更新最大乘积
}
}
return result;
}
}
```
在这个程序中,我们遍历所有可能的`a`值,然后计算对应的`b`值。如果`a`和`b`都是正整数,并且它们的乘积大于当前已知的最大乘积,就更新最大乘积。
阅读全文