网易相反数:
为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到1325的"相反数",首先我们将该数的数字顺序颠倒,我们得到5231,之后再加上原先的数,我们得到5231+1325=6556.如果颠倒之后的数字有前缀零,前缀零将会被忽略。例如n = 100, 颠倒之后是1.
输入描述:
输入包括一个整数n,(1 ≤ n ≤ 10^5)
输出描述:
输出一个整数,表示n的相反数
输入例子1:
1325
输出例子1:
6556
解题思路:
应用字符串知识。
1:首先将原字符n串取反输出得到相反字符串Inv;
2:然后判断Inv首字母是否为‘0’,若为’0’则删除(用’'替换)——此时编写一个替换函数replaceString(string, num, replace),直至首字母不为零为止,因此整个过程用while循环来完成——得到最终的Inv。
3:对n和Inv进行类型转换(字符串转换成int类型)并相加输出。
# -*- coding: utf-8 -*-
def replaceString(string, num, replace):
string2 = ''
for i in range(len(string)):
if i == num:
string2 += replace
else:
string2 += string[i]
return string2
def InverseNum(n):
Inv=''
for i in range(len(n)):
Inv=Inv+n[len(n)-1-i]
while(not int(Inv[0])):
Inv=replaceString(Inv, 0, '')
return int(Inv)+int(n)
def main():
n=input()
Inv=InverseNum(n)
print(Inv)
main()
运行结果:
