溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Python3如何實現(xiàn)個位數(shù)字和十位數(shù)字對調(diào), 其乘積不變

發(fā)布時間:2020-07-29 09:36:48 來源:億速云 閱讀:298 作者:小豬 欄目:開發(fā)技術(shù)

這篇文章主要為大家展示了Python3如何實現(xiàn)個位數(shù)字和十位數(shù)字對調(diào), 其乘積不變,內(nèi)容簡而易懂,希望大家可以學(xué)習(xí)一下,學(xué)習(xí)完之后肯定會有收獲的,下面讓小編帶大家一起來看看吧。

兩位數(shù)13和62具有很有趣的性質(zhì),把它們個位數(shù)字和十位數(shù)字對調(diào), 其乘積不變,

13 * 62

31 * 26

編程序求共有多少對這種性質(zhì)的兩位數(shù),個位與十位相同的不在此列

如11、22 重復(fù)出現(xiàn)的不在此列 如 1362與6213

count = 0

for i in range(11, 100):
  first_left = i // 10
  first_right = i % 10

  if first_left == first_right:  #減少程序循環(huán)次數(shù),因為后面的 for j in range(i + 1, 100)
    continue    # 已經(jīng)解決了11、22 重復(fù)出現(xiàn)的不在此列 和 13*62與62*13不在隊列

  for j in range(i + 1, 100):   #遍歷出數(shù)字并找出個位和十位
    second_left = j // 10
    second_right = j % 10

    if second_left == second_right:  #同理減少循環(huán)次數(shù)
      continue

    newfirst = first_right * 10 + first_left
    newsecond = second_right * 10 + second_left

    if i * j == newfirst * newsecond: #進(jìn)行if判斷
      print('{} * {} = {} * {}'.format(i, j, newfirst, newsecond))

      count += 1

print(count)

補(bǔ)充知識:Python反轉(zhuǎn)三位整數(shù)有幾種方法?

廢話不多說,開始今天的題目:

問:說說Python反轉(zhuǎn)三位整數(shù)有幾種方法?

答:這是leetcode上的一道編程算法題,感覺還是蠻經(jīng)典的,今天就拿出來給大家分享一下!給出一個3位的正整數(shù),你需要將這個整數(shù)中每位上的數(shù)字進(jìn)行反轉(zhuǎn)。例如:輸入: 123,輸出: 321 。大家先不看下面答案,看看如果是自己,可以想出幾種Python方式來解決!

下面分別來說說幾種實現(xiàn)的方式:

1、取余取整方式

class Test:
  def reverseInteger(self, number):
    g = number%10     #取出個位數(shù)
    s = (int(number/10))%10  #取出十位數(shù)
    b = int(number/100) #取出百位數(shù)
    return g*100+s*10+b
if __name__ == "__main__":
  ts = Test()
  print (ts.reverseInteger(123)) #輸出結(jié)果: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)) # 輸出結(jié)果: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、整數(shù)轉(zhuǎn)字符串,反轉(zhuǎn)字符串,然后再轉(zhuǎn)整數(shù)

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)) #輸出結(jié)果:321

以上就是關(guān)于Python3如何實現(xiàn)個位數(shù)字和十位數(shù)字對調(diào), 其乘積不變的內(nèi)容,如果你們有學(xué)習(xí)到知識或者技能,可以把它分享出去讓更多的人看到。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI