Number Line Jumps

Number Line Jumps

Prepare your favorite cup of coffee, because we are about to enter the fantastic world of Number line jumps.

The problem

The solution

To start our solution, let’s define the function that will receive the input parameters: kagaroo, where x1 is the initial position of the first kangaroo, v1 the jumping speed of the first kangaroo, x2 the initial position of the second kangaroo and v2 the jumping speed of the second kangaroo:

function kagaroo(x1, v1, x2, v2) {}

Let’s start by checking whether the first kangaroo has a greater speed than the second kangaroo:

if (v1 > v2) {}

If v2 is greater than v1, it is impossible for the first kangaroo to reach the second, so the function returns NO:

else {
return NO;
}

Later we will determine the initial distance between the two kangaroos, in the constant initialDistance. If x2 is greater than x1 it indicates that the first kangaroo is behind the second, so the difference will be positive. Otherwise, the difference will be negative:

const initialDistance = x2 x1;

Now let’s calculate the speed difference, in the constant speedDifference. To do this, let’s subtract v1 from v2:

const speedDifference = v1 v2;

After calculating the initial distance difference (initialDistance) and determining the speed difference (speedDifference), we will validate whether initialDistance is divisible by speedDifference. If this condition is satisfied, it means that the kangaroos will meet at some point in the future, so we return YES (indicating that the kangaroos will meet):

if (initialDistance % speedDifference === 0) {
return YES;
}

If this condition is not met, it means that the kangaroos will not meet at any point in the future. Thus, we return NO:

else {
return NO;
}

Final resolution

After following the step by step we have our final resolution:

function kagaroo(x1, v1, x2, v2) {
if (v1 > v2) {
const initialDistance = x2 x1;
const speedDifference = v1 v2;
if (initialDistance % speedDifference === 0) {
return YES;
} else {
return NO;
}
} else {
return NO;
}
}

Share the code, spread knowledge and build the future! 😉

Images generated by DALL·E 3

Leave a Reply

Your email address will not be published. Required fields are marked *