前导 0:整数前对数值无影响的 0。
例如:
·0201 去除前导 0 后为 201;
·00321 去除前导 0 后为 321。
给定一个正整数 n,请将 n 的最高位与最低位的数字进行交换,并输出交换后的结果。如果交换后的结果有前导 0,去除前导 0 后再输出结果。


前导 0:整数前对数值无影响的 0。
例如:
·0201 去除前导 0 后为 201;
·00321 去除前导 0 后为 321。
给定一个正整数 n,请将 n 的最高位与最低位的数字进行交换,并输出交换后的结果。如果交换后的结果有前导 0,去除前导 0 后再输出结果。


晚上好🌙🌙🌙
本答案参考通义千问
好的,我们来分析这个问题:洛谷B4301数字交换。
给定一个正整数 n,将它的最高位与最低位的数字进行交换,并输出结果。如果交换后的结果有前导 0,则去除前导 0 后再输出。
将数字转换为字符串,便于操作每一位。
n = 12345 → "12345"获取最高位和最低位:
highest_digit = '1', lowest_digit = '5'交换最高位和最低位:
new_str = lowest_digit + middle_part + highest_digit"52341"去除前导 0:
lstrip('0') 方法去除左边的所有 0。"00052341" → "52341"输出最终结果。
输入:n = 201
步骤:
"201"'2',最低位:'1'"102""102"(没有前导 0)102n = input().strip()
if len(n) == 1:
print(n)
else:
# 获取最高位和最低位
highest = n[0]
lowest = n[-1]
# 中间部分
middle = n[1:-1]
# 交换后的新数字
new_number = lowest + middle + highest
# 去除前导 0
result = new_number.lstrip('0')
# 处理全零的情况
if not result:
print('0')
else:
print(result)
n = 5),直接输出即可。n = 1000 → 交换后是 0001 → 去掉前导 0 得到 1)。0。| 输入 | 输出 | |------|------| | 12345 | 52341 | | 201 | 102 | | 1000 | 1 | | 9 | 9 |
如有其他问题或需要进一步解释,请随时告诉我!