Guest User

Untitled

a guest
Aug 19th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.52 KB | None | 0 0
  1. # encoding: UTF-8
  2.  
  3. CHARS = ('A'..'Z').to_a
  4.  
  5. def number_to_char(number)
  6. raise ArgumentError if number < 1
  7.  
  8. result = ''
  9. while number > 0
  10. number, remainder = (number - 1).divmod(26)
  11. result.prepend(CHARS[remainder])
  12. end
  13. result
  14. end
  15.  
  16. def char_to_number(char)
  17. raise ArgumentError unless char =~ /^[A-Z]*$/
  18. char.each_char.inject(0) { |sum, c| sum * 26 + CHARS.index(c) + 1 }
  19. end
  20.  
  21. input = 'XFD'
  22.  
  23. number = char_to_number(input)
  24. char = number_to_char(number)
  25.  
  26. puts "Input: #{input} to Number: #{number} to Char: #{char}"
Add Comment
Please, Sign In to add comment