Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import numpy as np
- fmt = lambda x: ''.join([str(e) for e in x])
- for _ in range(int(input('Введите кол-во тестов: '))):
- p = int(input('Введите разрядность чисел K и L: '))
- k = [int(x) for x in input('Введите число K: ')]
- l = [int(x) for x in input('Введите число L: ')]
- if len(k) <= len(l):
- k, l = l, k
- n, m = len(l), len(k)
- dif = n-m
- ans = []
- ost = 0
- for i in range(n-1, -1, -1):
- sum = k[i-dif] + l[i] + ost
- ans.append(sum % p)
- ost = 1 if sum >= p else 0
- for i in range(m-n-1, -1, -1):
- sum = k[i] + ost
- ans.append(sum % p)
- ost = 1 if sum >= p else 0
- if ost: ans.append(ost)
- print(np.base_repr(int(fmt(k), p) + int(fmt(l), p), p))
- print(fmt(reversed(ans)))
- # Tests
- #4
- #5
- #4321
- #4204
- #9
- #321488
- #534876
- #9
- #888721488
- #534876
- #7
- #42564
- #421534432
Advertisement
Add Comment
Please, Sign In to add comment