SHARE
TWEET

Untitled

a guest Oct 19th, 2019 78 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  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()
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top