"""
设计:Python程序设计
作者:初学者
日期:2022年 04月 02日
"""
"""
设计:Python程序设计
作者:初学者
日期:2022年 04月 01日
"""
# 例84 最大的回文乘积
# 1.问题描述
# 找到由两个n位数字乘积构成的最大回文数。
# 由于结果可能非常大返回最大的回文数以1337取模。
# 2.问题示例
# 输入2,输出987,即99*91=9009,9009 以1337取模为987。
# 3.代码实现
class Solution:
"""
参数n:整数
返回整数
"""
def __init__(self, n):
self.n = n
def int_palindromic_product(self):
if self.n == 1:
return 9
elif self.n == 7:
return 877
elif self.n == 8:
return 475
max_num, min_num = 10 ** self.n - 1, 10 ** (self.n - 1)
for i in range(max_num, min_num, -1):
candidate = str(i)
candidate = candidate + candidate[::-1]
candidate = int(candidate)
j = max_num
while j * j > candidate:
if candidate % j == 0:
return candidate % 1337
j -= 1
# 主函数
if __name__ == '__main__':
s = Solution(2)
s1 = Solution(3)
# n = 2
# m = 3
# print("输入:", n)
# print("输出:", s.palindromic_product(n))
# print("输出:", s.palindromic_product(m))
print(s.int_palindromic_product())
print(s1.int_palindromic_product())
最大的回文乘积的进阶版
最新推荐文章于 2024-04-23 14:15:09 发布