kxcoze

tanya_lab_1

Sep 16th, 2022 (edited)
846
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 2.40 KB | None | 0 0
  1. import numpy as np                                                                                                    
  2.                                                                                                        
  3. fmt = lambda x: ''.join([str(e) for e in x])                                                              
  4.      
  5. for _ in range(int(input('Введите кол-во тестов: '))):                                                              
  6.     p = int(input('Введите разрядность чисел K и L: '))                                                              
  7.     k = [int(x) for x in input('Введите число K: ')]    
  8.     l = [int(x) for x in input('Введите число L: ')]                                                              
  9.     if len(k) <= len(l):                                                              
  10.         k, l = l, k    
  11.     n, m = len(l), len(k)                                                              
  12.     dif = n-m                                                              
  13.    
  14.     ans = []                                                              
  15.     ost = 0    
  16.     for i in range(n-1, -1, -1):                                                              
  17.         sum = k[i-dif] + l[i] + ost                                                              
  18.         ans.append(sum % p)                                                              
  19.         ost = 1 if sum >= p else 0                                                              
  20.     for i in range(m-n-1, -1, -1):                                                                                    
  21.         sum = k[i] + ost                                                              
  22.         ans.append(sum % p)                                                              
  23.         ost = 1 if sum >= p else 0                                                              
  24.     if ost: ans.append(ost)                                                              
  25.     print(np.base_repr(int(fmt(k), p) + int(fmt(l), p), p))                                                          
  26.     print(fmt(reversed(ans)))
  27.  
  28.  
  29. # Tests
  30. #4                                                                                                                    
  31. #5
  32. #4321
  33. #4204
  34. #9
  35. #321488
  36. #534876
  37. #9
  38. #888721488
  39. #534876
  40. #7
  41. #42564
  42. #421534432
  43.  
Advertisement
Add Comment
Please, Sign In to add comment