天天看點

網易程式設計題目——相反數:

網易相反數:

為了得到一個數的"相反數",我們将這個數的數字順序颠倒,然後再加上原先的數得到"相反數"。例如,為了得到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()
           

運作結果:

網易程式設計題目——相反數:

繼續閱讀