Skip to content
Related Articles

Related Articles

C Program for Number of jump required of given length to reach a point of form (d, 0) from origin in 2D plane
  • Last Updated : 06 Dec, 2018
GeeksforGeeks - Summer Carnival Banner

Given three positive integers a, b and d. You are currently at origin (0, 0) on infinite 2D coordinate plane. You are allowed to jump on any point in the 2D plane at euclidean distance either equal to a or b from your current position. The task is to find the minimum number of jump required to reach (d, 0) from (0, 0).

Examples:

Input : a = 2, b = 3, d = 1 
Output : 2
First jump of length a = 2, (0, 0) -> (1/2, √15/2)
Second jump of length a = 2, (1/2, √15/2) -> (1, 0)
Thus, only two jump are required to reach 
(1, 0) from (0, 0).

Input : a = 3, b = 4, d = 11 
Output : 3
(0, 0) -> (4, 0) using length b = 4
(4, 0) -> (8, 0) using length b = 4
(8, 0) -> (11, 0) using length a = 3




#include <bits/stdc++.h>
using namespace std;
  
// Return the minimum jump of length either a or b
// required to reach (d, 0) from (0, 0).
int minJumps(int a, int b, int d)
{
    // Assigning maximum of a and b to b
    // and assigning minimum of a and b to a.
    int temp = a;
    a = min(a, b);
    b = max(temp, b);
  
    // if d is greater than or equal to b.
    if (d >= b)
        return (d + b - 1) / b;
  
    // if d is 0
    if (d == 0)
        return 0;
  
    // if d is equal to a.
    if (d == a)
        return 1;
  
    // else make triangle, and only 2
    // steps required.
    return 2;
}
  
int main()
{
    int a = 3, b = 4, d = 11;
    cout << minJumps(a, b, d) << endl;
    return 0;
}
Output:
3

Please refer complete article on Number of jump required of given length to reach a point of form (d, 0) from origin in 2D plane for more details!

Want to learn from the best curated videos and practice problems, check out the C Foundation Course for Basic to Advanced C.

My Personal Notes arrow_drop_up
Recommended Articles
Page :