Given three integers, your task is to obtain the maximum value possible by placing appropriately Addition operator, multiplication operator and brackets between the numbers.
For Example:
If a=5,b=4,c=3
Then the possible combinations are:
a*b*c, gives 60
a*(b+c), gives 35
a+b*c, gives 17
a*b+c, gives 23
a+b+c, gives 12
(a+b)*c, gives 27
So, the output is 60, which is the maximum possible value.
Method 1:
Implementation:
For Example:
If a=5,b=4,c=3
Then the possible combinations are:
a*b*c, gives 60
a*(b+c), gives 35
a+b*c, gives 17
a*b+c, gives 23
a+b+c, gives 12
(a+b)*c, gives 27
So, the output is 60, which is the maximum possible value.
Method 1:
Implementation:
#include<stdio.h>
/*Function to return the maximum among a & b */
int getmax ( int a, int b )
{
return a > b ? a : b;
}
int main()
{
int x, y, z, max;
/* Getting the First number from the user */
scanf ( " %d ", &x );
/* Getting the Second number from the user */
scanf ( " %d ", &y );
/* Getting the Third number from the user */
scanf ( " %d ",&z );
/*There are 6 possibilities of placing four operators between three numbers (brackets inclusive)*/
max = x * y * z;
/*Update everytime maximum value to the "max" variable*/
max = getmax ( max, ( x * ( y + z ) ) );
max = getmax ( max, ( x + y * z ) );
max = getmax ( max, ( x * y + z ) );
max = getmax ( max, x + y + z );
max = getmax ( max, ( x + y ) * z );
/*Print the maximum value obtained by placing the operators between the operands*/
printf ( " %d ", max );
return 0;
}