python反轉(zhuǎn)一個三位整數(shù)的多種實現(xiàn)方案
在LintCode上練習(xí)遇到這個問題,查閱資料找到多種方法,總結(jié)如下。
輸入 輸出 123 321 第一種:整數(shù)方法取余取整實現(xiàn)class Solution: ''' @param number: A 3-digit number. @return: Reversed number. ''' def reverseInteger(self, number): g = number%10 #取出個位數(shù) s = (int(number/10))%10 #取出十位數(shù) b = int(number/100) #取出百位數(shù) return g*100+s*10+bif __name__ == '__main__': so = Solution() print (so.reverseInteger(123))
python不和C語言一樣自動截取保留整數(shù),需要用 int 轉(zhuǎn)換一下
第二種:使用字符串切片def reverseInteger(self, number): number=str(number) result=number[::-1] result=(int(result)) return result
借用字符串的方法處理
第三種:使用棧def reverseInteger(self, number): number=str(number)#模擬入棧 l=list(number) result='' while len(l)>0: result+=l.pop()#模擬出棧 return int(result)
補充:Python程序:任意輸入一個三位數(shù),然后把三位數(shù)的位置反轉(zhuǎn)輸出。
第一種方法把輸入的三位數(shù)百位、十位和個位依次表示出來,然后將個位數(shù)字和百位數(shù)字進行交換。
#輸入number = 123,輸出321number = int(input(’請輸入一個三位數(shù):’))a = number%10 #個位b = number//10%10 #十位c = number//100 #百位re_number = a*100 + b*10 + cprint(’%d的反轉(zhuǎn)數(shù)是:%d’%(number,re_number)) #第一種輸出方式print(’{0}的反轉(zhuǎn)數(shù)是:{1}’.format(number,re_number)) #第二種輸出方式第二種方法
將輸入的三位數(shù)以字符串的形式用list()方法列表化,然后逆序從列表中依次取出個位、十位、百位,輸出的時候注意將str類型轉(zhuǎn)換為int類型。
#輸入number = 123,輸出321number = input(’請輸入一個三位數(shù):’)list1 = list(number) #將輸入的三位數(shù)的字符串存入列表list1.reverse() #將列表元素反轉(zhuǎn)a = int(list1[0]) #取出反轉(zhuǎn)后列表的元素并將其類型轉(zhuǎn)為int類型b = int(list1[1])c = int(list1[2]) #也可以不反轉(zhuǎn)列表,直接反著取出列表中的元素re_number = a*100 + b*10 + cprint(’%s的反轉(zhuǎn)數(shù)是:%s’%(number,re_number))print(’%d的反轉(zhuǎn)數(shù)是:%d’%(int(number),re_number))
以上就是我所想到的輸出3位數(shù)反轉(zhuǎn)數(shù)的方法,希望能給大家一個參考,也希望大家多多支持好吧啦網(wǎng)。如有錯誤或未考慮完全的地方,望不吝賜教。
相關(guān)文章:
