題目描述
給定一個整數,請將該數各個位上數字反轉得到一個新數。新數也應滿足整數的常見形式,即除非給定的原數爲零,否則反轉後得到的新數的最高位數字不應爲零(參見樣例2)。
輸入描述
共一行,一個整數N
輸出描述
共一行,一個整數,表示反轉後的新數。
樣例輸入 1
123
樣例輸出 1
321
樣例輸入 2
-380
樣例輸出 2
-83
提示
【數據範圍】
−1,000,000,000 <= N <= 1,000,000,000
思路解析:
分三種情況:
第一種是大於0,尾部不是0就正常逆序即可,是0的話,設個計數器,記住標號,然後不輸出那些0就行
第二種等於0,不說了
第三種小於0,就是負數,負號不能動,那麼就先輸出它,其他的跟大於0時考慮的一樣
代碼如下:
#C0206.py
def count(N): #作爲計數器記住下標,反轉後第一個不爲0的數前的數一律不輸出
i = 0
for c in N:
i += 1
if c != "0":
print(N[i-1:])
break
n = input()
N = ""
if eval(n) > 0:
if n[-1] == "0":
N = n[::-1] #正整數直接逆序即可
count(N) #參數與函數中的參數相同
else:
print(n[::-1])
elif eval(n) == 0:
print(eval(n))
else:
print("-",end = "") #首先輸出負號
if n[-1] == "0":
N = n[-2:0:-1] #負數不能直接逆序,要在逆序後不輸出逆序的負號
count(N) #同樣調用count()函數
else:
print(n[:0:-1]) #輸出不包括逆序後在後邊的負號