Advertisement
vasyukov

ZFTSH Numeral Systems 5

Dec 30th, 2022
63
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.65 KB | None | 0 0
  1. def from14to10(x):
  2.     ans = 0
  3.     x = x[::-1]
  4.     n = 0 # разряд
  5.     for i in x:
  6.         match i:
  7.             case 'a': i = '10'
  8.             case 'b': i = '11'
  9.             case 'c': i = '12'
  10.             case 'd': i = '13'
  11.         ans += int(i)*14**n
  12.         n += 1
  13.     return ans
  14.  
  15. s = input() # вводимая последовательность
  16. char_0 = ord('0') # номер символа 0 в таблице символов Unicode
  17. char_9 = ord('9') # номер символа 9 в таблице символов Unicode
  18. char_a = ord('a') # номер символа a в таблице символов Unicode
  19. char_d = ord('d') # номер символа d в таблице символов Unicode
  20. is_number = True # проверка, что последовательность состоит из цифр 14-й СС
  21. end_with_dot = False # проверка, что последовательность зканчивается точкой
  22. res = '' # строка, в которую будут записываться цифр 14-й СС из последовательности
  23.  
  24. for i in range(len(s)):
  25.     if str.lower(s[i]) == '.':
  26.         end_with_dot = True
  27.         break
  28.     if (char_0 <= ord(s[i]) <= char_9 or char_a <= ord(s[i]) <= char_d):
  29.         res += s[i]
  30.     else:
  31.         is_number = False
  32.         break
  33.  
  34. if s[-1] == '.':
  35.     end_with_dot = True
  36. if not end_with_dot:
  37.     print('Нет точки в конце последовательности!')
  38. elif not is_number or res == '':
  39.     print('NO')
  40. else:
  41.     ans = from14to10(res)
  42.     if ans % 2 != 0:
  43.         print('YES')
  44.     else:
  45.         print('NO')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement