Reverse a Number

excerpt: This covers the basic building blocks such as Modulo Operator, Reducing in Input by Integer Division and Place Value tags: modulo-operator reducing-input-value place-value

Write a function to reverse a given number.

  1. Extract the last number by using Modulo operator.
  2. Take the digit’s position in the result into account (10, 100, 1000 etc). This is the Place Value in action.
  3. Add it to reversed digit with extracted digit from the input number.

Recursive Implementation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
def reverse(n, reversed)
  if n == 0
    return reversed
  end
  
  digit = n % 10
  reversed = reversed * 10 + digit
  chopped = n / 10
  
  reverse(chopped, reversed)
end

reversed = 0
p reverse(60, reversed)

Iterative Implementation

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
def reverse(n)
  reversed = 0
  
  while n != 0  
    digit = n % 10
    reversed = reversed * 10 + digit
    n = n / 10
  end

  reversed
end

p reverse(23456)

Building Blocks

  • Modulo Operator to Extract Digit
  • Reducing in Input by Integer Division
  • Place Value