# Count the minimum steps to reach 0 from the given integer N

• Last Updated : 05 May, 2021

Given two integers N and K where K represents the number of jumps that we are allowed to make directly from N reducing N to N – K, our task is to count minimum steps to reach 0 following the given operations:

• We can jump by a amount of K from N that is N = N – K
• Decrement N by 1 that is N = N -1.

Examples:

Input: N = 11, K = 4
Output:
Explanation:
For the given value N we can perform the operation in the given sequence: 11 -> 7 -> 3 -> 2 -> 1 -> 0

Input: N = 6, K = 3
Output:
Explanation:
For the given value N we can perform the operation in the given sequence: 6 -> 3 -> 0.

Approach:
To solve the problem mentioned above we know that it will take N / K steps to directly jump from value N to least divisible value with K and N % K steps to decrement it by 1 such as to reduce the count to 0. So the total number of steps required to reach 0 from N will be

(N / K) + (N % K)

Below is the implementation of the above approach:

## C++

 `// C++ program to Count the minimum steps``// to reach 0 from the given integer N` `#include ``using` `namespace` `std;` `// Function returns min step``// to reach 0 from N``int` `getMinSteps(``int` `n, ``int` `jump)``{``    ``// Direct possible``    ``// reduction of value N``    ``int` `quotient = n / jump;` `    ``// Remaining steps needs``    ``// to be reduced by 1``    ``int` `remainder = n % jump;` `    ``// Summation of both the values``    ``int` `steps = quotient + remainder;` `    ``// Return the final answer``    ``return` `steps;``}` `// Driver code``int` `main()``{``    ``int` `N = 6, K = 3;` `    ``cout << getMinSteps(N, K);` `    ``return` `0;``}`

## Java

 `// Java program to count the minimum steps``// to reach 0 from the given integer N``class` `GFG{` `// Function returns min step``// to reach 0 from N``static` `int` `getMinSteps(``int` `n, ``int` `jump)``{``    ` `    ``// Direct possible``    ``// reduction of value N``    ``int` `quotient = n / jump;` `    ``// Remaining steps needs``    ``// to be reduced by 1``    ``int` `remainder = n % jump;` `    ``// Summation of both the values``    ``int` `steps = quotient + remainder;` `    ``// Return the final answer``    ``return` `steps;``}` `// Driver code``public` `static` `void` `main(String[] args)``{``    ``int` `N = ``6``, K = ``3``;` `    ``System.out.print(getMinSteps(N, K));``}``}` `// This code is contributed by Rohit_ranjan`

## Python3

 `# Python3 program to Count the minimum steps``# to reach 0 from the given integer N` `# Function returns min step``# to reach 0 from N``def` `getMinSteps(n, jump):` `    ``# Direct possible``    ``# reduction of value N``    ``quotient ``=` `int``(n ``/` `jump)` `    ``# Remaining steps needs``    ``# to be reduced by 1``    ``remainder ``=` `n ``%` `jump` `    ``# Summation of both the values``    ``steps ``=` `quotient ``+` `remainder` `    ``# Return the final answer``    ``return` `steps` `# Driver code``N ``=` `6``K ``=` `3` `print` `(getMinSteps(N, K))` `# This code is contributed by PratikBasu`

## C#

 `// C# program to count the minimum steps``// to reach 0 from the given integer N``using` `System;` `class` `GFG{` `// Function returns min step``// to reach 0 from N``static` `int` `getMinSteps(``int` `n, ``int` `jump)``{``    ` `    ``// Direct possible``    ``// reduction of value N``    ``int` `quotient = n / jump;` `    ``// Remaining steps needs``    ``// to be reduced by 1``    ``int` `remainder = n % jump;` `    ``// Summation of both the values``    ``int` `steps = quotient + remainder;` `    ``// Return the final answer``    ``return` `steps;``}` `// Driver code``public` `static` `void` `Main(``string``[] args)``{``    ``int` `N = 6, K = 3;` `    ``Console.Write(getMinSteps(N, K));``}``}` `// This code is contributed by rutvik_56`

## Javascript

 ``

Output:

`2`

My Personal Notes arrow_drop_up