homework4.py 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. """Задача Код"""
  2. nums = []
  3. approved_numbers = []
  4. matrix = [
  5. [[0], [3], [1], [7], [5], [9], [8], [6], [4], [2]],
  6. [[7], [0], [9], [2], [1], [5], [4], [8], [6], [3]],
  7. [[4], [2], [0], [6], [8], [7], [1], [3], [5], [9]],
  8. [[1], [7], [5], [0], [9], [8], [3], [4], [2], [6]],
  9. [[6], [1], [2], [3], [0], [4], [5], [9], [7], [8]],
  10. [[3], [6], [7], [4], [2], [0], [9], [5], [8], [1]],
  11. [[5], [8], [6], [9], [7], [2], [0], [1], [3], [4]],
  12. [[8], [9], [4], [5], [3], [6], [2], [0], [1], [7]],
  13. [[9], [4], [3], [8], [6], [1], [7], [2], [0], [5]],
  14. [[2], [5], [8], [1], [4], [3], [6], [7], [9], [0]],
  15. ]
  16. while True:
  17. try:
  18. num = input().strip()
  19. nums.append(num)
  20. except EOFError:
  21. break
  22. def find_k(num: str) -> int:
  23. k = 0
  24. for s in range(len(num)):
  25. d = int(num[s])
  26. k = matrix[k][d][0]
  27. return k
  28. for i in range(len(nums)):
  29. f = 0
  30. s = 1
  31. num = nums[i]
  32. k = find_k(num)
  33. original_list = list(num)
  34. while k != 0:
  35. reverse_list = original_list.copy()
  36. if 0 <= f < len(num) and 0 < s < len(num):
  37. reverse_list[f], reverse_list[s] = original_list[s], original_list[f]
  38. else:
  39. raise ValueError(f"Число {num} не имеет решения")
  40. reversed_num = "".join(reverse_list)
  41. k = find_k(reversed_num)
  42. num = reversed_num
  43. f+=1
  44. s+=1
  45. approved_numbers.append(num)
  46. with open("output.dat", "w") as file:
  47. file.write("\n".join(approved_numbers))