Given a natural number N, the task is to print the Nth Stepping or Autobiographical number.
A number is called stepping number if all adjacent digits have an absolute difference of 1. The following series is a list of Stepping natural numbers:
1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 21, 22, 23, 32, ….
Input: N = 16 Output: 32 Explanation: 16th Stepping number is 32. Input: N = 14 Output: 22 Explanation: 14th Stepping number is 22.
Approach: This problem can be solved using Queue data structure. First, prepare an empty queue, and Enqueue 1, 2, …, 9 in this order.
Then inorder the generate the Nth Stepping number, the following operations has to be performed N times:
- Perform Dequeue from the Queue. Let x be the dequeued element.
- If x mod 10 is not equal to 0, then Enqueue 10x + (x mod 10) – 1
- Enqueue 10x + (x mod 10).
- If x mod 10 is not equal to 9, then Enqueue 10x + (x mod 10) + 1.
The dequeued number in the N-th operation is the N-th Stepping Number.
Below is the implementation of the above approach:
Time Complexity: O(N)
Don’t stop now and take your learning to the next level. Learn all the important concepts of Data Structures and Algorithms with the help of the most trusted course: DSA Self Paced. Become industry ready at a student-friendly price.
- Find all Autobiographical Numbers with given number of digits
- Number of n digit stepping numbers
- Number of n digit stepping numbers | Space optimized solution
- Find the length of largest subarray in which all elements are Autobiographical Numbers
- Print a number strictly less than a given number such that all its digits are distinct.
- Print Bracket Number
- Print all Prime Quadruplet of a number less than it
- Print all substring of a number without any conversion
- C Program to Print all digits of a given number
- Print all permutations of a number N greater than itself
- Queries to print all divisors of number
- Print Number series without using any loop
- Program to print 'N' alphabet using the number pattern from 1 to n
- Program to print factors of a number in pairs
- Print all non-increasing sequences of sum equal to a given number x
- Print all combinations of points that can compose a given number
- Program to print multiplication table of a number
- Queries to multiply the given subarray with given number X and print sum
- Print steps to make a number in form of 2^X - 1
- Print a number containing K digits with digital root D
If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to email@example.com. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.