Змея / Говнокод #21776 Ссылка на оригинал

0

  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
class RomeNumberConvertor(object):
    def __init__(self):
        self.discharge = ['unit', 'dozen', 'hundred', 'thousand']
        self.unit_set = ('I', 'V', 'X')
        self.dozen_set = ('X', 'L', 'C')
        self.hundred_set = ('C', 'D', 'M')
        self.thousand_set = ('M')
        
    def _discharge2rome(self, discharge, value):
        pattern = {'1': '{0}', '2': '{0}{0}', '3': '{0}{0}{0}',
                        '4': '{0}{1}', '5': '{1}', '6': '{1}{0}',
                        '7': '{1}{0}{0}', '8': '{1}{0}{0}{0}', '9': '{0}{2}'}
        return pattern[value].format(*getattr(self, '%s_set' % discharge))
        
    def lat2rome(self, num):
        rome_digit = ''
        for i, k in enumerate(reversed(str(num))):
            if k == '0': continue
            rome_digit = '%s%s' % (self._discharge2rome(self.discharge[i], k), rome_digit) 
        return rome_digit

Вот так человек решил преобразовывать в римские цифры :D

Запостил: mbrutus mbrutus, (Updated )

Комментарии (18) RSS

Добавить комментарий

Где здесь C++, guest?!

    А не использовать ли нам bbcode?


    8