TopcoderArchiveVisit Topcoder
SRM3 Nov 2015
SRM 675

LengthUnitCalculator

Problem statement, definition, constraints, and public examples.

Problem Statement

Your task is to write a calculator that will convert between four different length units: inches (in), feet (ft), yards (yd), and miles (mi).

The conversions between these units:
  • 1 ft = 12 in
  • 1 yd = 3 ft
  • 1 mi = 1760 yd
You are given an int amount and Strings fromUnit and toUnit. Compute and return the amount of toUnits that corresponds to amount fromUnits. (For example, if amount=41, fromUnit="mi", and toUnit="in", you are supposed to compute the number of inches in 41 miles.)
Note that the result will not necessarily be an integer.

Definition

Class:
LengthUnitCalculator
Method:
calc
Parameters:
int, String, String
Returns:
double
Method signature:
double calc(int amount, String fromUnit, String toUnit)
(be sure your method is public)

Notes

  • Pay attention to the unusual time limit.

Constraints

  • amount will be between 1 and 1,000, inclusive.
  • fromUnit will be one of {"in", "ft", "yd", "mi"}.
  • toUnit will be one of {"in", "ft", "yd", "mi"}.

Examples

  1. 1
    "mi"
    "ft"
    Returns: 5280.0
    We are asked to convert 1 mile into feet. From the information in the statement we know that 1 mi = 1760 yd = (1760 * 3) ft = 5280 ft.
  2. 1
    "ft"
    "mi"
    Returns: 1.893939393939394E-4
    Here we have 1 ft = 1/5280 mi, which is approximately 0.000189394 miles.
  3. 123
    "ft"
    "yd"
    Returns: 41.0
  4. 1000
    "mi"
    "in"
    Returns: 6.336E7
  5. 1
    "in"
    "mi"
    Returns: 1.5782828282828283E-5
  6. 47
    "mi"
    "mi"
    Returns: 47.0
Back to all problems