python版
查看原帖
python版
1236551
CaoHangyuan楼主2024/7/23 19:46

支持到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:]
2024/7/23 19:46
加载中...