Python3實現(xiàn)個位數(shù)字和十位數(shù)字對調(diào), 其乘積不變
兩位數(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
以上是我分享的4種方式,大家還有其它的方式嗎?上面代碼都已經(jīng)經(jīng)過我親自測試,可以直接使用!希望能給大家一個參考,也希望大家多多支持腳本之家!
相關(guān)文章
Python隨機(jī)數(shù)種子(random seed)的設(shè)置小結(jié)
隨機(jī)數(shù)種子是控制偽隨機(jī)數(shù)生成器的初始值,通過設(shè)置相同的種子,可以確保隨機(jī)數(shù)序列的一致性,本文主要介紹了Python隨機(jī)數(shù)種子(random seed)的設(shè)置,感興趣的可以了解一下2025-03-03
python網(wǎng)絡(luò)編程之文件下載實例分析
這篇文章主要介紹了python網(wǎng)絡(luò)編程之文件下載實現(xiàn)方法,實例分析了Python基于FTP及http實現(xiàn)文件下載的技巧,需要的朋友可以參考下2015-05-05
python中from module import * 的一個坑
from module import *把module中的成員全部導(dǎo)到了當(dāng)前的global namespace,訪問起來就比較方便了。當(dāng)然,python style一般不建議這么做,因為可能引起name conflict。2014-07-07
使用C語言來擴(kuò)展Python程序和Zope服務(wù)器的教程
這篇文章主要介紹了使用C語言來擴(kuò)展Python程序和Zope服務(wù)器的教程,本文來自于IBM官方網(wǎng)站技術(shù)文檔,需要的朋友可以參考下2015-04-04
Python通過30秒就能學(xué)會的漂亮短程序代碼(過程全解)
這篇文章主要介紹了Python之30秒就能學(xué)會的漂亮短程序代碼,本文通過實例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2021-10-10

