4. 数位分解技巧

利用整除(//)取余(%)运算符可以提取一个整数的各个数位:

运算含义示例(num=123)
num % 10取个位3
num // 10去掉个位12
num // 10 % 10取十位2
num // 100取百位1

两位数翻转

python
# 将两位数的数位分解,并翻转此数。输入12,输出21
num = int(input("请输入一个两位的整数:"))
s = num // 10     # 十位
g = num % 10      # 个位
r_num = g * 10 + s
print("翻转后的数为:", r_num)

📝 样例输入:

输入
12

▶ 运行结果:

输出
请输入一个两位的整数:12
翻转后的数为: 21

三位数各位数字求和

python
# 读取一个0到999之间的整数,计算它各位数字之和
num = int(input())
a = num % 10     # 个位
num //= 10
b = num % 10     # 十位
num //= 10
c = num % 10     # 百位
print(f"各位数字之和是:{a + b + c}")

📝 样例输入:

输入
123

▶ 运行结果:

输出
123
各位数字之和是:6

时间转换

把总秒数分解为"时:分:秒",是数位分解思路的实际应用:

python
# 输入一个时间(h时m分s秒),计算经过n秒后的时间
h = int(input("时"))
m = int(input("分"))
s = int(input("秒"))
n = int(input("经过的时间(秒)"))

t = h * 3600 + m * 60 + s + n  # 转换为总秒数

new_h = t // 3600
new_m = (t % 3600) // 60
new_s = t % 60

print(f"{new_h}时")
print(f"{new_m}分")
print(f"{new_s}秒")

📝 样例输入:

输入
1
30
45
80

▶ 运行结果:

输出
时1
分30
秒45
经过的时间(秒)80
1时
32分
5秒