python反转一个三位整数的多种实现方案
在LintCode上练习遇到这个问题,查阅资料找到多种方法,总结如下。
输入 | 输出 |
---|---|
123 | 321 |
第一种:整数方法取余取整实现
classSolution: """ @paramnumber:A3-digitnumber. @return:Reversednumber. """ defreverseInteger(self,number): g=number%10#取出个位数 s=(int(number/10))%10#取出十位数 b=int(number/100)#取出百位数 returng*100+s*10+b if__name__=="__main__": so=Solution() print(so.reverseInteger(123))
python不和C语言一样自动截取保留整数,需要用int转换一下
第二种:使用字符串切片
defreverseInteger(self,number): number=str(number) result=number[::-1] result=(int(result)) returnresult
借用字符串的方法处理
第三种:使用栈
defreverseInteger(self,number): number=str(number)#模拟入栈 l=list(number) result="" whilelen(l)>0: result+=l.pop()#模拟出栈 returnint(result)
补充:Python程序:任意输入一个三位数,然后把三位数的位置反转输出。
第一种方法
把输入的三位数百位、十位和个位依次表示出来,然后将个位数字和百位数字进行交换。
#输入number=123,输出321 number=int(input('请输入一个三位数:')) a=number%10#个位 b=number//10%10#十位 c=number//100#百位 re_number=a*100+b*10+c print('%d的反转数是:%d'%(number,re_number))#第一种输出方式 print('{0}的反转数是:{1}'.format(number,re_number))#第二种输出方式
第二种方法
将输入的三位数以字符串的形式用list()方法列表化,然后逆序从列表中依次取出个位、十位、百位,输出的时候注意将str类型转换为int类型。
#输入number=123,输出321 number=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+c print('%s的反转数是:%s'%(number,re_number)) print('%d的反转数是:%d'%(int(number),re_number))
以上就是我所想到的输出3位数反转数的方法,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。