python 正整数个位与十位_Python3实现个位数字和十位数字对调, 其乘积不变

两位数13和62具有很有趣的性质,把它们个位数字和十位数字对调, 其乘积不变,vdu免费资源网

即vdu免费资源网

13 * 62vdu免费资源网

31 * 26vdu免费资源网

编程序求共有多少对这种性质的两位数,个位与十位相同的不在此列vdu免费资源网

如11、22 重复出现的不在此列 如 1362与6213vdu免费资源网

count = 0

for i in range(11, 100):

first_left = i // 10

first_right = i % 10

if first_left == first_right: #减少程序循环次数,因为后面的 for j in range(i + 1, 100)

continue # 已经解决了11、22 重复出现的不在此列 和 13*62与62*13不在队列

for j in range(i + 1, 100): #遍历出数字并找出个位和十位

second_left = j // 10

second_right = j % 10

if second_left == second_right: #同理减少循环次数

continue

newfirst = first_right * 10 + first_left

newsecond = second_right * 10 + second_left

if i * j == newfirst * newsecond: #进行if判断

print('{} * {} = {} * {}'.format(i, j, newfirst, newsecond))

count += 1

print(count)

补充知识:Python反转三位整数有几种方法?vdu免费资源网

废话不多说,开始今天的题目:vdu免费资源网

问:说说Python反转三位整数有几种方法?vdu免费资源网

答:这是leetcode上的一道编程算法题,感觉还是蛮经典的,今天就拿出来给大家分享一下!给出一个3位的正整数,你需要将这个整数中每位上的数字进行反转。例如:输入: 123,输出: 321 。大家先不看下面答案,看看如果是自己,可以想出几种Python方式来解决!vdu免费资源网

下面分别来说说几种实现的方式:vdu免费资源网

1、取余取整方式vdu免费资源网

class Test:

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__":

ts = Test()

print (ts.reverseInteger(123)) #输出结果:321

2、使用栈的方式vdu免费资源网

class Test:

def reverseInteger(self, number):

number = str(number) # 模拟入栈

l = list(number)

result = ""

while len(l) > 0:

result += l.pop() # 模拟出栈

return int(result)

if __name__ == "__main__":

ts = Test()

print (ts.reverseInteger(123)) # 输出结果:321

3、使用切片的方式vdu免费资源网

class Test:

def reverseInteger(self, number):

number=str(number)

result=number[::-1] #python中切片的特殊用法

result=(int(result))

return result

if __name__ == "__main__":

ts = Test()

print (ts.reverseInteger(123))

4、整数转字符串,反转字符串,然后再转整数vdu免费资源网

class Test:

def reverseInteger(self, x):

plus_minus = ""

reverse_x = ""

if x < 0:

plus_minus = "-"

x = -x

for i in str(x):

reverse_x = i + reverse_x

reverse_x = plus_minus + reverse_x

if int(reverse_x) > pow(2, 31) - 1 or int(reverse_x) < pow(-2, 31):

return 0

return int(reverse_x)

if __name__ == "__main__":

ts = Test()

print (ts.reverseInteger(123)) #输出结果:321

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值