题目描述
今天上课,老师教了小易怎么计算加法和乘法,乘法的优先级大于加法,但是如果一个运算加了括号,那么它的优先级是最高的。例如:
1+2*3=7 1*(2+3)=5 1*2*3=6 (1+2)*3=9
现在小易希望你帮他计算给定3个数a,b,c,在它们中间添加"+", "*", "(", ")"符号,能够获得的最大值。
输入描述:
一行三个数a,b,c (1 <= a, b, c <= 10)
输出描述:
能够获得的最大值
示例1
输入
复制
1 2 3
输出
复制
9
import java.util.Scanner;
public class Main {
/**
* 由于数据量较小这里模拟出所有的情况即可。
*/
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int a, b, c;
a = scanner.nextInt();
b = scanner.nextInt();
c = scanner.nextInt();
scanner.close();
int maxResult = Integer.MIN_VALUE;
for (int k=0; k<2; ++k) {
for (int i = 0; i < 2; ++i) {
int temp;
if (i == 0) {
temp = a + b;
} else {
temp = a * b;
}
for (int j = 0; j < 2; ++j) {
int result;
if (j == 0) {
result = temp + c;
} else {
result = temp * c;
}
if (result>maxResult) {
maxResult = result;
}
}
}
// 交换ac 的值顺序
int changeTemp = a;
a = c;
c = changeTemp;
}
System.out.println(maxResult);
}
}
Java实现表达式求值最大化

该博客介绍了如何使用Java解决表达式求值问题,重点在于理解乘法优先级高于加法,以及括号可以改变运算顺序以获取最大值。通过给定3个数a, b, c,目标是构造表达式以最大化计算结果。"
138826599,7337247,GLM数据增强:回译、词替换与Mixup策略详解,"['深度学习', '神经网络', '大数据', '人工智能', '自然语言处理']
5万+

被折叠的 条评论
为什么被折叠?



