文章目录
- P1307 [NOIP 2011 普及组] 数字反转
-
- 题目描述
- 输入格式
- 输出格式
- 说明/提示
- 思路分析及代码
P1307 [NOIP 2011 普及组] 数字反转
题目描述
给定一个整数
N
N
N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
输入格式
一个整数
N
N
N。
输出格式
一个整数,表示反转后的新数。
输入输出样例 #1
输入 #1
123
输出 #1
321
输入输出样例 #2
输入 #2
-380
输出 #2
-83
说明/提示
【数据范围】
$-1,000,000,000\\leq N\\leq 1,000,000,000 $。
noip2011 普及组第一题
思路分析及代码
处理负数:先将负数转为正数处理,最后再恢复符号,简化运算逻辑。 循环提取数字: 用 n % 10 提取当前数字的最后一位 用 reversed_num * 10 + last_digit 将提取的数字拼接到反转数的末尾 用 n = n // 10 移除已经处理的最后一位 终止条件:当 n 变为 0 时,循环结束,此时 reversed_num 就是反转后的结果。
n=int(input())
original=n
reversed_num=0
# 处理负数:先转为正数处理,最后再加上符号
if n<0:
n=–n
# 循环提取每一位数字
while n>0:
# 提取最后一位数字
last_digit=n%10
# 将提取的数字拼接到反转数的末尾
reversed_num=reversed_num*10+last_digit
# 移除最后一位数字
n=n//10
# 恢复负数符号
if original<0:
reversed_num=–reversed_num
print(reversed_num)
评论前必须登录!
注册