You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在不转换为字符串的情况下交换两位整数的数字并保留前导零?

无需转字符串交换两位整数数字的方法及前导零问题解决

首先明确:仅通过整数算术运算无法保留前导零,因为整数类型本身不存储前导零,不管怎么用//、%这类操作,最终得到的结果都是整数,输出时会自动去除前导零。

你的代码逻辑本身是对的,用整数运算拆分和交换两位数字完全可行,但问题出在输出环节——你要的01是字符串格式的表现,而非整数能存储的形式。

解决办法(无需提前转输入为字符串)

可以在输出阶段做格式化处理,不用修改前面的整数运算逻辑:

  1. 直接拼接数字为字符串输出:
number = int(input())

digit_1 = number // 10
digit_2 = number % 10
# 直接将两个数字转为字符串拼接
print(f"{digit_2}{digit_1}")

这样输入10时,会直接输出01,输入20输出02,完全符合需求。

  1. 用数字格式化输出补零:
number = int(input())

digit_1 = number // 10
digit_2 = number % 10
swapped_number = digit_2 * 10 + digit_1
# 格式化输出为两位数字,不足补零
print(f"{swapped_number:02d}")

这种方式会把整数1格式化为01输出,同样能达到效果。

为什么修改//和%没用?

因为这两个运算符都是针对整数的计算,拆分得到的digit_2如果是0,计算后得到的swapped_number还是整数1,整数本身没有前导零的概念,所以无论怎么调整算术操作,都没法让整数自带前导零,必须通过输出格式化来实现。

内容的提问来源于stack exchange,提问作者Nicolas Holmgren Chinique

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.14 13:35:44