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