天天看点

网易编程题目——相反数:

网易相反数:

为了得到一个数的"相反数",我们将这个数的数字顺序颠倒,然后再加上原先的数得到"相反数"。例如,为了得到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()
           

运行结果:

网易编程题目——相反数: