Advertisement
Guest User

Untitled

a guest
Oct 19th, 2019
100
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.37 KB | None | 0 0
  1. #Функция задаёт ряд фибоначи (рекурсией)
  2. def fib(n):
  3. if n in (1, 2):
  4. return 1
  5. return fib(n - 1) + fib(n - 2)
  6.  
  7. #Функция перевода строки в числовой вид
  8. def Integere(n):
  9. nm = 0
  10. b1 = 0
  11. b1 = 10**(len(n) - 1)
  12.  
  13. for i in range(len(n)):
  14. nm += (ord(n[i])-48) * b1
  15. b1//=10
  16. return(nm)
  17.  
  18. #Открываем файл на чтение и запись
  19. f = open('Input.txt')
  20. f1 = open('Output.txt', 'w')
  21. #Читаем файл и разбиваем его по переносу строки
  22. text = f.read()
  23. text = text.split('\n')
  24.  
  25. #цикл обработки данных (перевод из одной сс в другую)
  26. for n in range(len(text)):
  27. #объявление переменных для перевода чисел
  28. out = ''
  29. s = ''
  30. a = text[n]
  31. a = a.split(' ')
  32. j = 2
  33. cnt = 0
  34. numOut = 0
  35. #конец объявления переменных
  36.  
  37. #Создание начальной строчки для вывода 1СС -> 2СС
  38. out = out + a[0] + " -> " + a[1] + ": "
  39.  
  40. #Определяем из какого числа нам надо переводить, если 10 до в 2 СС, если fib то в 10 СС
  41. if a[0] == '10':
  42. #Превод в двоичную СС +)
  43. while j < len(a):
  44.  
  45. num = Integere(a[j])#Используем функцию перевода в число
  46. NumTest = str(num)
  47.  
  48. while num > 0:
  49. s = s + str(num%2)
  50. #Разделяем точами тетрады
  51. cnt+=1
  52. if (cnt%4 == 0 and num > 1) :
  53. s = s + "."
  54. cnt = 0
  55. #/////////////////////////
  56. num//=2
  57. #Создаём вывод
  58. out = out + NumTest + " -> " + s[:: -1] + " "
  59.  
  60. cnt = 0
  61. s = ''
  62. j+=1
  63.  
  64. elif a[0] == 'fib':
  65. #Перевод из фибоначивой в 10 СС
  66. while j < len(a):
  67.  
  68. l = len(a[j]) + 1
  69. for i in range(len(a[j])):
  70.  
  71. num = Integere(a[j][i]) #Переводм строку в число
  72. numOut = numOut + fib(l)*num #используем функцию для получения элемента ряда фиб и умножаем на цифру числа в фиб СС
  73. l-=1
  74. #Создаем вывод
  75. out = out + a[j] + " -> " + str(numOut) + " "
  76. numOut = 0
  77. j+=1
  78. print(out)
  79. f1.write(out + '\n')
  80.  
  81. #Закрываем файлы
  82. f.close()
  83. f1.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement