神剑山庄资源网 Design By www.hcban.com

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

13 * 62

31 * 26

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

如11、22 重复出现的不在此列 如 1362与6213

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反转三位整数有几种方法?

废话不多说,开始今天的题目:

问:说说Python反转三位整数有几种方法?

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

下面分别来说说几种实现的方式:

1、取余取整方式

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、使用栈的方式

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、使用切片的方式

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、整数转字符串,反转字符串,然后再转整数

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

以上是我分享的4种方式,大家还有其它的方式吗?上面代码都已经经过我亲自测试,可以直接使用!希望能给大家一个参考,也希望大家多多支持!

标签:
Python3,个位数字,十位数字,乘积

神剑山庄资源网 Design By www.hcban.com
神剑山庄资源网 免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件! 如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
神剑山庄资源网 Design By www.hcban.com

评论“Python3实现个位数字和十位数字对调, 其乘积不变”

暂无Python3实现个位数字和十位数字对调, 其乘积不变的评论...

稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!

昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。

这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。

而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?