赞
踩
描述
给定一个整数,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例2)。
输入
输入共 1 行,一个整数N。
-1,000,000,000 ≤ N≤ 1,000,000,000。输出
输出共 1 行,一个整数,表示反转后的新数。
样例输入
样例 #1: 123 样例 #2: -380样例输出
样例 #1: 321 样例 #2: -83来源
NOIP2011复赛 普及组 第一题
代码如下:
N=int(input()) flag=False # 标志位,记录N的正负情况 if N<0: flag=True # N为负数,设置标志位为True abs_N=abs(N) # 方便计算正负数 str_N=str(abs_N) # 方便计算长度 res=0 for i in range(len(str_N)-1,-1,-1): res=res*10+int(str_N[i]) # 将字符转换为整数并添加到res的后面 if flag: res*=-1 # 如果N为负数,则将结果取负 print(res)tips:
for i in range(len(str_N)-1,-1,-1):这段代码是使用for循环将字符串反向遍历,从最后一个字符到第一个字符,下标从len(str_N)-1到-1,从len(str_N)-1开始是因为字符串的最后一个字符的下标等于字符串的长度减一,到-1是因为取不到-1,只能取到0,第一个字符的下标就是0,再将步长设置成-1,从而循环能够从最后一个字符遍历到第一个字符,从最后一个下标为len(str_N)-1到倒数第二个下标为len(str_N)-2......到第一个下标为0;
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。