题目

输入一个非负整数,将其转换为小写十六进制字符串形式并输出。

输入格式:输入一行包含一个非负整数 n。

输出格式:输出转换后的小写十六进制字符串,末尾换行。

数据范围与约定:0 ≤ n ≤ 10^9。

思路与算法

1. 进制转换原理
除 16 取余,余数 0~9 映射为字符 '0'~'9',10~15 映射为 'a'~'f'。

2. 逆序组装
高位在后得到,输出时需要反转字符列表。

完整程序

def hex_digit(v):
    return chr(ord('0') + v) if v < 10 else chr(ord('a') + v - 10)

n = int(input())

# 十进制转十六进制字符串
if n == 0:
    print(0)
else:
    s = []
    x = n
    while x > 0:
        s.append(hex_digit(x & 0xF))
        x //= 16
    print("".join(reversed(s)))

运行示例

输入:

255

输出:

ff