javascript : calculate taxi cost based on 3 distance ranges

  if-statement, javascript, while-loop

The problem is calculating the total cost to be paid to the taxi driver with the following rules:

  • for the first hundred meters, the rental rate is 100 / meter.
  • for the next hundred meters to the first 500 meters, the rental rate is 50 / meter.
  • for 500 meters to the end, the rental rate is 10 / meter.

the unit of distance entered is kilo meters.

(It’s the easy part to change the distance so don’t bother.)

Since this is a problem from the pop quiz and I didn’t study at all, I just came out with this solution

function counter(distance) {
  distance = distance * 1000;

  meter = 0;
  totalCost = 0;

  while (meter <= distance) {
    if (meter <= 100) {
      totalCost = 100;
    }
    if (meter > 100 && meter <= 500) {
      totalCost = totalCost + 50;
    }
    if (meter > 500) {
      totalCost = totalCost + 10;
    }

    meter = meter + 1;
  }

  return totalCost;
}

Which is so stupid because there are so many repetitions. Can you guys show me the right way to solve this problem?

Source: Ask Javascript Questions

LEAVE A COMMENT