题目描述
给定一个整数 N,请将该数各个位上数字反转得到一个新数。新数也应满足整数的常见形式,即除非给定的原数为零,否则反转后得到的新数的最高位数字不应为零(参见样例 2)。
输入格式
一个整数 N。
输出格式
一个整数,表示反转后的新数。
样例 #1
样例输入 #1
123
样例输出 #1
321
样例 #2
样例输入 #2
-380
样例输出 #2
-83
提示
【数据范围】
-1,000,000,000<N<1,000,000,000 。
来源/分类(难度系数:二星)
NOIP普及组 模拟 字符串 2011
完整代码展示:
# coding=utf-8
a=eval(input())
if a==0:print(0)
elif a<0:s=list(str(a))s=s[1::]sum=0for i in range(0,len(s)):sum+=eval(s[i])*10**iprint(0-sum)
else:s=list(str(a))sum=0for i in range(0,len(s)):sum+=eval(s[i])*10**iprint(sum)
代码解释:
a=eval(input())
导入用户需要反转的数字a。
if a==0:
print(0)
判断a是否为0,如果是,则输出0。
elif a<0:
s=list(str(a))
s=s[1::]
sum=0
for i in range(0,len(s)):
sum+=eval(s[i])*10**i
print(0-sum)
如果a<0,则将s转换为字符串并储存在列表s中,将s除第一个元素的切片重新赋给s。令sum为0,接着遍历s中元素:s[i]转换为可计算数值,sum+s[i]*10**i。最后打印sum的相反数。
else:
s=list(str(a))
sum=0
for i in range(0,len(s)):
sum+=eval(s[i])*10**i
print(sum)
如果a>0,则将s转换为字符串并储存在列表s中。令sum为0,接着遍历s中元素:s[i]转换为可计算数值,sum+s[i]*10**i。最后打印sum。
运行效果展示:
(声明:以上内容均为原创)