原题链接:https://ac.nowcoder.com/acm/contest/19304/N
题目描述
数据结构之神ccz又在出毒瘤数据结构了
神出了这样一个题:
给你三个数,在这三个数中间任意加或者是+,然后可以随便打括号,只要这个表达式合法
比如说1 2 3可以得到:
1+2*3=7
1(2+3)=5
123=6
(1+2)*3=9
不能改变这三个数的原顺序
最大化表达式的值
输入描述:
输入三行,每行一个数
分别表示a,b,c
输出描述:
输出一行一个数表示答案
示例1
输入
1
2
3
输出
9
送命题
乍一看需要判断的式子很多
但a+b*c的结构一定小于a+b+c或a*b*c
因此只需要判断
W=a+b+c;
X=a*b*c;
Y=(a+b)*c;
Z=a*(b+c);
四个式子的大小
懒得写if了能AC就行
#include <stdio.h>
#include <iostream>
#include <algorithm>
using namespace std;
int main()
{
int a,b,c,W,X,Y,Z;
cin >> a;
cin >> b;
cin >> c;
W=a+b+c;
X=a*b*c;
Y=(a+b)*c;
Z=a*(b+c);
printf("%d\n",max({X,Y,Z,W}));
return 0;
}注意
输入要求换行,不要写成cin >> a >> b >> c;

京公网安备 11010502036488号