TopCoder problem "SimpleCalculator" used in SRM 178 (Division II Level One)



Problem Statement

    A simple calculator accepts the following kinds of strings as input:
  • 1) NUM+NUM
  • 2) NUM-NUM
  • 3) NUM*NUM
  • 4) NUM/NUM
where NUM is a positive integer, between 1 and 10000 inclusive that can contain leading zeros. Return the value produced by the given expression. Here +,-,*, and / denote addition, subtraction, multiplication and division respectively. All operations are done on integers, so "5/3" returns 1.
 

Definition

    
Class:SimpleCalculator
Method:calculate
Parameters:String
Returns:int
Method signature:int calculate(String input)
(be sure your method is public)
    
 

Constraints

-input will contain between 3 and 50 characters inclusive.
-input will have the form <NUM><OP><NUM> where

<NUM> is a positive integer between 1 and 10000 inclusive, that may contain leading zeros and

<OP> is one of (quotes for clarity) '+','*','-', or '/'.
-input will not contain any spaces.
 

Examples

0)
    
"5/3"
Returns: 1
Remember integer division is used, so results are truncated.
1)
    
"15*3"
Returns: 45
2)
    
"1-10000"
Returns: -9999
Negative results are allowed.
3)
    
"17+18"
Returns: 35
4)
    
"0000000000000018/00000000000000000009"
Returns: 2
The long way of writing 18/9.

Problem url:

http://www.topcoder.com/stat?c=problem_statement&pm=2272

Problem stats url:

http://www.topcoder.com/tc?module=ProblemDetail&rd=4710&pm=2272

Writer:

brett1479

Testers:

lbackstrom , schveiguy

Problem categories:

String Parsing