python三位一并法,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+b

if __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,输出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位数反转数的方法,希望能给大家一个参考,也希望大家多多支持脚本之家。如有错误或未考虑完全的地方,望不吝赐教。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值