云计算百科
云计算领域专业知识百科平台

python洛谷做题34:P1307 [NOIP 2011 普及组] 数字反转

文章目录

  • 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)

赞(0)
未经允许不得转载:网硕互联帮助中心 » python洛谷做题34:P1307 [NOIP 2011 普及组] 数字反转
分享到: 更多 (0)

评论 抢沙发

评论前必须登录!