 Open in App
Not now

# Convert A into B by incrementing or decrementing 1, 2, or 5 any number of times

• Last Updated : 23 Aug, 2021

Given two integers A and B, the task is to find the minimum number of moves needed to make A equal to B by incrementing or decrementing the A by either 1, 2, or 5 any number of times.

Examples:

Input: A = 4, B = 0
Output: 2
Explanation:
Perform the operation as follows:

1. Decreasing the value of A by 2, modifies the value of A to (4 – 2) = 2.
2. Decreasing the value of A by 2 modifies the value of A to (2 – 2) = 0. Which is equal to B.

Therefore, the number of moves required is 2.

Input: A = 3, B = 9
Output: 2

Approach: The given problem can be solved by using the Greedy Approach. The idea is to first find the increment or decrements of 5, then 2, and then 1 is needed to convert A to B. Follow the steps below to solve the problem:

• Update the value of A as the absolute difference between A and B.
• Now, print the value of (A/5) + (A%5)/2 + (A%5)%2 as the minimum number of increments or decrements of 1, 2, or 5 to convert A into B.

Below is the implementation of the above approach:

## C++

 `// C++ program for the above approach` `#include ` `using` `namespace` `std;`   `// Function to find minimum number of` `// moves required to convert A into B` `int` `minimumSteps(``int` `a, ``int` `b)` `{` `    ``// Stores the minimum number of` `    ``// moves required` `    ``int` `cnt = 0;`   `    ``// Stores the absolute` `    ``// difference` `    ``a = ``abs``(a - b);`   `    ``// FInd the number of moves` `    ``cnt = (a / 5) + (a % 5) / 2 + (a % 5) % 2;`   `    ``// Return cnt` `    ``return` `cnt;` `}`   `// Driver Code` `int` `main()` `{` `    ``// Input` `    ``int` `A = 3, B = 9;` `    ``// Function call` `    ``cout << minimumSteps(A, B);` `    ``return` `0;` `}`

## Java

 `// Java program for the above approach` `import` `java.io.*;`   `class` `GFG ` `{` `  `  `    ``// Function to find minimum number of` `    ``// moves required to convert A into B` `    ``static` `int` `minimumSteps(``int` `a, ``int` `b)` `    ``{` `      `  `        ``// Stores the minimum number of` `        ``// moves required` `        ``int` `cnt = ``0``;`   `        ``// Stores the absolute` `        ``// difference` `        ``a = Math.abs(a - b);`   `        ``// FInd the number of moves` `        ``cnt = (a / ``5``) + (a % ``5``) / ``2` `+ (a % ``5``) % ``2``;`   `        ``// Return cnt` `        ``return` `cnt;` `    ``}`   `    ``// Driver Code` `    ``public` `static` `void` `main(String[] args)` `    ``{` `        ``// Input` `        ``int` `A = ``3``, B = ``9``;` `        ``// Function call` `        ``System.out.println(minimumSteps(A, B));` `    ``}` `}`   ` ``// This code is contributed by Potta Lokesh`

## Python3

 `# python program for the above approach`   `# Function to find minimum number of` `# moves required to convert A into B` `def` `minimumSteps(a, b):` `  `  `    ``# Stores the minimum number of` `    ``# moves required` `    ``cnt ``=` `0`   `    ``# Stores the absolute` `    ``# difference` `    ``a ``=` `abs``(a ``-` `b)`   `    ``# FInd the number of moves` `    ``cnt ``=` `(a``/``/``5``) ``+` `(a ``%` `5``)``/``/``2` `+` `(a ``%` `5``) ``%` `2` `    `  `    ``# Return cnt` `    ``return` `cnt`     `# Driver Code` `# Input` `A ``=` `3` `B ``=` `9`   `# Function call` `print``(minimumSteps(A, B))`   `# This code is contributed by amreshkumar3.`

## C#

 `// C# program for the above approach` `using` `System;` `using` `System.Collections.Generic;`   `class` `GFG{`   `// Function to find minimum number of` `// moves required to convert A into B` `static` `int` `minimumSteps(``int` `a, ``int` `b)` `{` `    `  `    ``// Stores the minimum number of` `    ``// moves required` `    ``int` `cnt = 0;`   `    ``// Stores the absolute` `    ``// difference` `    ``a = Math.Abs(a - b);`   `    ``// FInd the number of moves` `    ``cnt = (a / 5) + (a % 5) / 2 + (a % 5) % 2;`   `    ``// Return cnt` `    ``return` `cnt;` `}`   `// Driver Code` `public` `static` `void` `Main()` `{` `    `  `    ``// Input` `    ``int` `A = 3, B = 9;` `    `  `    ``// Function call` `    ``Console.Write(minimumSteps(A, B));` `}` `}`   `// This code is contributed by SURENDRA_GANGWAR`

## Javascript

 ``

Output

`2`

Time Complexity: O(1)
Auxiliary Space: O(1)

My Personal Notes arrow_drop_up
Related Articles