Question connection: 10700-camel trading
A formula containing only '+' and '*' is provided. The maximum and minimum values of the formula must be obtained without considering the priority.
Solution: the maximum value is nothing more than processing all addition. The minimum value is used to process all multiplication (because all values are positive numbers ).
# include
# include
using namespace STD; int main () {int N; scanf ("% d", & N); While (n --) {stack
Add; stack
Mul; long a, sum; char C; scanf ("% LLD", & A); add. push (a); Mul. push (a); While (scanf ("% C", & C) = 1 & C! = '\ N') {scanf ("% LLD", & A); If (C =' + ') {sum = add. top (); add. pop (); add. push (sum + a); Mul. push (a);} else if (C = '*') {sum = Mul. top (); Mul. pop (); Mul. push (sum * A); add. push (a) ;}} long max = 1, min = 0; while (! Add. Empty () {max * = Add. Top (); add. Pop () ;}while (! Mul. empty () {min + = Mul. top (); Mul. pop ();} printf ("the maximum and minimum are % LLD and % LLD. \ n ", Max, min) ;}return 0 ;}