Sha256: 16f3e9d6db6f31355d49207c084dbb2e558e6c13c8da433f894e426a815c2264

Contents?: true

Size: 933 Bytes

Versions: 57

Compression:

Stored size: 933 Bytes

Contents

module BookKeeping
  VERSION = 1
end

class BaseConverter
  def self.convert(base_from, number_array, base_to)
    return if number_array.any?{|number| number < 0 || number >= base_from}
    return if base_from <= 1 || base_to <= 1
    return [] unless number_array.any?
    number_in_canonical_base = convert_to_canonical_base(number_array, base_from)
    convert_from_canonical_base(number_in_canonical_base, base_to)
  end

  private
  def self.convert_to_canonical_base(number_array, base)
    total = 0
    number_array.reverse.each_with_index do |number, index|
      total += number * base ** index
    end
    total
  end

  def self.convert_from_canonical_base(number, base_to)
    result = []
    current_number = number
    while current_number >= base_to do
     result << current_number % base_to
     current_number = current_number / base_to
    end
    result << current_number % base_to
    result.reverse
  end
end

Version data entries

57 entries across 57 versions & 1 rubygems

Version Path
trackler-2.0.6.1 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.6.0 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.18 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.17 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.16 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.15 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.14 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.13 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.12 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.11 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.10 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.9 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.8 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.7 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.6 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.5 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.4 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.3 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.2 tracks/ruby/exercises/all-your-base/example.rb
trackler-2.0.5.1 tracks/ruby/exercises/all-your-base/example.rb