Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- file = open('input.txt')
- def from2to10(n):
- n10 = 0
- p = 0
- while n > 0:
- n10 += (n % 10) * (2 ** p)
- p += 1
- n //= 10
- return n10
- def numLen(n):
- i = 0
- while(n > 0):
- n //= 10
- i += 1
- return i
- def from10tofact(n):
- r = 1
- fnr = 0
- while n > 0:
- y = n % r
- y *= 10 ** numLen(n) if fnr > 0 else 1
- fnr += y
- fnr *= 10
- n //= r
- r += 1
- fnr //= 10
- fn = 0
- while fnr > 0:
- d = fnr % 10
- fnr //= 10
- fn += d
- fn *= 10
- fn //= 10
- return fn
- def convert(s1, s2, n):
- if s1 == '2' and s2 == '10':
- return from2to10(n)
- elif s1 == '10' and s2 == 'fact':
- return from10tofact(n)
- charDigit = {
- '0': 0, '1': 1, '2': 2, '3': 3, '4': 4, '5': 5, '6': 6, '7': 7, '8': 8, '9': 9
- }
- def strToInt(s):
- num = 0
- for c in s:
- num += charDigit[c]
- num *= 10
- num //= 10
- return num
- def main():
- for line in file.readlines():
- line = line.replace('\n', '')
- line = line.split(' ')
- s1 = line[0]
- s2 = line[1]
- nums = line[2:]
- for n in nums:
- n = strToInt(n)
- print('Converting ', n, ' from ', s1, ' to ', s2, ' -> ', convert(s1, s2, n), '\n')
- if __name__ == '__main__':
- main()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement