C Program for Number of jump required of given length to reach a point of form (d, 0) from origin in 2D plane

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.