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

自定义到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)
    result = []
    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:42
加载中...