时间:2016-03-22 20:13:36 星期二
题目编号:[2016-03-22][479][A][Expression]
题目大意:给定三个整数,在3个数字之间加符号(括号或者运算符),输出运算之后最大值
分析:
- $ab - a+b = (a-1)(b-1) - 1,当 a\geq2 且 b \geq 2时 abc > (a+b)c$
- $\frac{a+b+c}{(a+b)*c} = \frac{1}{c} + \frac{1}{a+b} < 1,显然abc>a+b+c$
- $令a > c 则(a+1)c = ac+a < ac + c = a(1+c),所以小的数+1$
遇到的问题:
#include <cstdio>using namespace std;typedef long long LL;int main(){ int a,b,c; scanf("%d%d%d",&a,&b,&c); if(a == 1) ++b; if(b == 1){ if(a > c) ++c; else ++a; } if(c == 1) ++b; printf("%d\n",a*b*c); return 0;}