Number of jumps required of given length to reach a point of (d, 0) from origin in 2D plane


In this article, we will discuss the possible solution of an exciting analytical question of how many jumps are required to reach a point (d, 0) from the origin in a 2D plane where you have been specified fixed length of jumps. We will use the fixed length of jumps and the target coordinates to find the minimum number of jumps required.

Input Output Scenarios

Suppose jump length can be a or b while the target point is (d, 0). Then, the given output is the minimum number of jumps required to reach target.

Input: a = 7, b = 5, d = 9
Output: 2
Input: a = 7, b = 5, d = 5
Output: 1
Input: a = 7, b = 5, d = 24
Output: 4

Suppose you are standing at the origin (0, 0) of a 2D plane. Your target coordinate is given as (d, 0). The only way you can get to the target coordinate is to make jumps of fixed lengths. Your goal is to find an efficient way to reach the target with minimum number of jumps.

Using If Statements

We will use if statements to find the minimum of jumps required to reach (d, 0).

  • First of all, we need to assure that a is always greater than b so that a represents the longer jump length while b represents the shorter jump length. So, if b > a, then we assign the maximum of a and b to a.

  • Next, we check if d is greater than or equal to a. If this condition is satisfied, then we can simply calculate the minimum number of jumps by using the (d + a - 1) / a. Here, (d + a - 1) represents the total distance to be covered by making jumps of length “a” while dividing it by a (which is each jump length) gives number of jumps.

  • If d = 0, then no jumps required.

  • If d = b, then we can reach the point directly by taking one jump of b length.

  • If d > b and d < a, then minimum number of jumps is 2. This is because if we take a triangle XYZ such that X is origin, Z is target point and Y is a point such that XY = YZ = max(a, b). Then, minimum jumps will be 2 that is from X to Y and Y to Z.

Example

#include <iostream>
using namespace std;

int minJumps(int a, int b, int d) {
   // Check if b > a, then interchange the values of a and b
   if (b > a) {
      int cont = a;
      a = b;
      b = cont;
   }
    
   // When d >= a
   if (d >= a)
      return (d + a - 1) / a;

   // When the target point is 0
   if (d == 0)
      return 0;

   // When d is equal to b.
   if (d == b)
      return 1;
     
   // When distance to be covered is not equal to b.    
   return 2;  
    
}

int main() {
   int a = 3, b = 5, d = 9;
   int result = minJumps(a, b, d);
   cout << "Minimum number of jumps required to reach (d, 0) from (0, 0) is: " << result << endl;
   return 0;
}

Output

Minimum number of jumps required to reach (d, 0) from (0, 0) is: 2

Using Division and Modulo Operators

If the values of a or b is 0, then we can simply use the division and modulo operators to find the minimum number of jumps. Here, we divide the distance d with the jump length (since one of the jump lengths is 0) to get the number of jumps.

Example

#include <iostream>
using namespace std;

int minJumps(int d, int jumpLength) {
   // To find number of complete jumps
   int numJumps = d / jumpLength;
   // If distance is not divisible by jump length
   if (d % jumpLength != 0) {
      numJumps++;  
   }
   return numJumps;
}
int main() {
   int d = 24, jumpLength = 4;
   int result = minJumps(d, jumpLength);
   cout << "Minimum number of jumps required to reach (d, 0) from (0, 0) is: " << result << endl;
   return 0;
}

Output

Minimum number of jumps required to reach (d, 0) from (0, 0) is: 6

Note − We can also use ternary operator in order to write the code in concise manner.

int minJumps(int d, int jumpLength) {
   int numJumps = (d % jumpLength == 0) ? (d / jumpLength) : (d / jumpLength) + 1;
   return numJumps;
}

Conclusion

We have discussed about how to find the minimum number of jumps required to reach a target point (d, 0) from origin in a 2D plane. We have used if statements to find the number of jumps for non-zero values of a and b (a and b are jump lengths). If a or b is zero, then we can use the division and modulo operators. To write the code in concise manner, we can use ternary operators.

Updated on: 12-Jul-2023

46 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements