Advertisement
luisphelipe

euler_17

Dec 20th, 2016
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.91 KB | None | 0 0
  1. from time import sleep
  2.  
  3.  
  4. centenas = ['', ' Hundred ', ' Hundred And ']
  5. dezenas = ['', '', 'Twenty', 'Thirty', 'Forty', 'Fifty', 'Sixty', 'Seventy', 'Eighty', 'Ninety']
  6. unidades = ['', 'One', 'Two', 'Three', 'Four', 'Five', 'Six', 'Seven', 'Eight', 'Nine',
  7.             'Ten', 'Eleven', 'Twelve', 'Thirteen', 'Fourteen', 'Fifteen', 'Sixteen', 'Seventeen', 'Eighteen',
  8.             'Nineteen']
  9.  
  10.  
  11. def convert(number):
  12.     if number == 1000: return 'OneThousand'
  13.  
  14.     word = ''
  15.     sobra = number
  16.  
  17.     milharesi = number // 1000
  18.     sobra -= milharesi * 100
  19.  
  20.     centenasi = number // 100
  21.     sobra -= centenasi * 100
  22.  
  23.     if 1000 > number >= 100 and number % 100 != 0: centenasv = 2
  24.     elif 1000 > number >= 100 and number % 100 == 0: centenasv = 1
  25.     else: centenasv = 0
  26.  
  27.     word += unidades[centenasi]
  28.     word += centenas[centenasv]
  29.  
  30.     if sobra >= 20:
  31.         dezenasi = sobra // 10
  32.         sobra -= dezenasi * 10
  33.  
  34.         word += dezenas[dezenasi]
  35.         if sobra > 0: word += '-'
  36.         word += unidades[sobra]
  37.  
  38.     elif sobra < 20:
  39.         word += unidades[sobra]
  40.  
  41.     return word
  42.  
  43.  
  44. def true_len(word):
  45.     size = 0
  46.     for c in word:
  47.         if c.isalpha():
  48.             size += 1
  49.     return size
  50.  
  51.  
  52. soma = 0
  53. for i in range(1, 1001):
  54.     x = convert(i)
  55.     soma += true_len(x)
  56.  
  57.     a = ''
  58.     for c in range(len(str(i)), 4):
  59.         a += ' '
  60.     b = ''
  61.     for c in range(len(x), 35):
  62.         b += ' '
  63.     c = ''
  64.     for d in range(len(str(len(x)))-1, 1):
  65.         c += ' '
  66.  
  67.     print(i, a, x, b, len(x), c, soma)
  68.     sleep(.01)
  69.  
  70. print('\nFIM DA RESOLUÇÃO\n')
  71.  
  72. while True:
  73.     x = 0
  74.     while not(1 <= x <= 1000):
  75.         x = int(input('De um valor entre 1 e 1000: '))
  76.  
  77.     y = convert(x)
  78.  
  79.     a = ''
  80.     for c in range(len(str(x)), 4):
  81.         a += ' '
  82.     b = ''
  83.     for c in range(len(y), 35):
  84.         b += ' '
  85.  
  86.     print(x, a, y, b, len(y), end='\n\n')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement