大家好,又见面了,我是全栈君,今天给大家准备了Idea注册码。
主题链接:Expression
1 second
256 megabytes
standard input
standard output
Petya studies in a school and he adores Maths. His class has been studying arithmetic expressions. On the last class the teacher wrote three positive integers a, b, c on the blackboard. The task was to insert signs of operations ‘+‘ and ‘*‘, and probably brackets between the numbers so that the value of the resulting expression is as large as possible. Let’s consider an example: assume that the teacher wrote numbers 1, 2 and 3 on the blackboard. Here are some ways of placing signs and brackets:
- 1+2*3=7
- 1*(2+3)=5
- 1*2*3=6
- (1+2)*3=9
Note that you can insert operation signs only between a and b, and between b and c, that is, you cannot swap integers. For instance, in the given sample you cannot get expression (1+3)*2.
It’s easy to see that the maximum value that you can obtain is 9.
Your task is: given a, b and c print the maximum value that you can get.
The input contains three integers a, b and c, each on a single line (1 ≤ a, b, c ≤ 10).
Print the maximum value of the expression that you can obtain.
1 2 3
9
2 10 3
60
大致题意:a, b, c三个数。在三个数中,插入“+” 和“*”运算符的随意两个组合,求能组成的表达式的值得最大值。(能够用括号)
解题思路:没啥说的。直接暴力,总共就6种组合。
AC代码:
#include <stdio.h> #include <string.h> #include <iostream> #include <algorithm> #include <vector> #include <queue> #include <set> #include <map> #include <string> #include <math.h> #include <stdlib.h> #include <time.h> using namespace std; #define INF 0x7fffffff int x[9]; int main() { // #ifdef sxk // freopen("in.txt","r",stdin); // #endif int a,b,c; while(scanf("%d%d%d",&a,&b,&c)!=EOF) { x[0] = a + b + c; x[1] = a + (b * c); x[2] = a * (b + c); x[3] = (a + b) * c; x[4] = (a * b) + c; x[5] = a * b * c; sort(x, x+6); printf("%d\n",x[5]); } return 0; }
版权声明:本文sxk原创文章。转载本文,请添加链接^_^
发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/117058.html原文链接:https://javaforall.cn
【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛
【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...