支持到36进制
def to_base(n, base):
digits = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ"
if n < base:
return digits[n]
else:
return to_base(n // base, base) + digits[n % base]
def counting(number, base):
new_number = number[::-1]
total = int(number, base) + int(new_number, base)
return to_base(total, base)
N = int(input())
num = input()
count = 0
while count < 30:
if num == num[::-1]:
print(f'STEP={count}')
break
else:
num = counting(num, N)
count += 1
else:
print('Impossible!')
只考虑2,8,10,16进制
def counting(number, base):
new_number = number[::-1]
total = int(number, base) + int(new_number, base)
if base == 2:
return bin(total)[2:]
elif base == 8:
return oct(total)[2:]
elif base == 10:
return str(total)
else:
return hex(total)[2:]