Skip to content

Instantly share code, notes, and snippets.

@mvidner
Created September 20, 2010 13:27
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save mvidner/587903 to your computer and use it in GitHub Desktop.
Save mvidner/587903 to your computer and use it in GitHub Desktop.
#! /usr/bin/env ruby
# in ruby 1.8, Enumerator is limited
require 'generator'
# 1234 -> [1, 2, 3, 4]
# but don't use a String
def digits(i, base = 10)
g = Generator.new do |g|
begin
dm = i.divmod(base)
g.yield dm.last
i = dm.first
end until i.zero?
end
g.to_a.reverse
end
p digits(0755)
# => [4, 9, 3]
p digits(0755, 8)
# => [7, 5, 5]
@stefanluptak
Copy link

def digits(i, base = 10)
  ret = []
  while i > 0
    ret << i % base
    i /= base
  end
  ret.reverse
end

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment