|
发表于 2022-5-21 15:19:44
|
显示全部楼层
import time
def palindrome_data(power):
"""
: 由几位数构成的回文
:param power:
:return:
"""
st = time.time()
start = 10 ** (power - 1)
end = 10 ** power
all_palin_data = []
t = 0
x = 0
y = 0
for i in range(end, start, -1): # 这里反着取效率最高
for j in range(end, start, -1):
result = i * j
if str(result) == str(result)[::-1]:
if result > t:
t = result # 保存变量占用内存就会浪费时间
x = i
y = j
ele = (x, y, t)
if ele not in all_palin_data:
all_palin_data.append((x, y, t))
break # 这里取到一个最大的就不用继续在这个循环里面浪费时间了
print(all_palin_data)
print('用时%.5f' % (time.time() - st))
|
|