题解 | #表达式求值#

解题思路

这是一个表达式求值问题。关键点如下:

  1. 给定三个数
  2. 可以在数字之间添加 "+", "*", "(", ")" 符号
  3. 需要求出所有可能表达式中的最大值

解题思路:

  1. 由于只有三个数,可能的组合是有限的
  2. 主要考虑两种情况:
    • 全部相乘:
    • 两数相加再乘以第三个数:
  3. 对于每种排列,比较这两种计算方式的结果,取较大值

代码

#include <iostream>
using namespace std;

int main() {
    int a, b, c;
    cin >> a >> b >> c;
    
    int result;
    if (a > b) {
        if (a > c) {  // a最大
            result = max(a * b * c, (b + c) * a);
        } else {      // c最大
            result = max(a * b * c, (a + b) * c);
        }
    } else {
        if (b > c) {  // b最大
            result = max(a * b * c, (a + c) * b);
        } else {      // c最大
            result = max(a * b * c, (a + b) * c);
        }
    }
    
    cout << result << endl;
    return 0;
}
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();
        
        int result;
        if (a > b) {
            if (a > c) {  // a最大
                result = Math.max(a * b * c, (b + c) * a);
            } else {      // c最大
                result = Math.max(a * b * c, (a + b) * c);
            }
        } else {
            if (b > c) {  // b最大
                result = Math.max(a * b * c, (a + c) * b);
            } else {      // c最大
                result = Math.max(a * b * c, (a + b) * c);
            }
        }
        
        System.out.println(result);
    }
}
a, b, c = map(int, input().split())

if a > b:
    if a > c:  # a最大
        result = max(a * b * c, (b + c) * a)
    else:      # c最大
        result = max(a * b * c, (a + b) * c)
else:
    if b > c:  # b最大
        result = max(a * b * c, (a + c) * b)
    else:      # c最大
        result = max(a * b * c, (a + b) * c)

print(result)

算法及复杂度

  • 算法:贪心
  • 时间复杂度: - 只需要固定次数的比较操作
  • 空间复杂度: - 只使用常数额外空间
全部评论

相关推荐

头像
今天 20:19
已编辑
门头沟学院 人工智能
本文略长,献给身处双非、学院本科的低年级依旧陷入迷茫的同学,一个参考。夹杂强烈主观因素,若观点不同,仅当笑料。近日,工作之余的午休时间给母校的学弟学妹进行了宣讲,同时也接受了牛客的访谈,不约而同的触发了两个关键词考研,就业。现象今年和去年,认识的学弟学妹,来自知某、抖某、牛客等系列的学弟学妹,这次宣讲,约有20个学弟学妹来加了我的联系方式,向我取经,聊聊未来,聊聊想法。我这里简单概括一下。1.现在很迷茫,大方向摇摆就业还是考研,但是倾向考研。小方向摇摆竞赛和项目,不知道怎么去做,不知道怎么开始。2.考研的直接目的绝大多数都是为了(混)学历,根本目的就是提高就业竞争力。3.我把他们都拉了个群,在...
牛客85294058...:“私聊能够滔滔不绝,而拉了一个小群之后就完全一声不吭”个人观点这跟从小到大“不要浪费大家时间”的社会环境有关:个人化的提问,如果你上学时有留心、或者参加QA环节多,会注意到这种做法经常是被人骂的。要营造让大家开口的氛围和做出欢迎讨论的议题设置还是比较难的,期待方法探索。
投递大连飞创信息技术有限公司等公司10个岗位
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务