抹桥的博客
主题色
250
226 字
1 分钟
网易云课堂考试题-python
2015-01-29

题目内容:#

两位整数相乘形成的最大回文数是 9009 = 99 × 91。编写程序,求得任意输入的 n 位整数相乘形成的最大回文数。 输入格式: 正整数 n 输出格式: n 位整数相乘形成的最大回文数 输入样例: 2 输出样例: 9009

程序:

def is_palindrome(num): #判断是否是回文 n = str(num) if n == n[::-1]: return True else: return False n = int(input()) a = 1 arr1 = [] arr2 = [] while len(str(a)) < n + 1: #将n位数的数字加到数组中,同时抛弃n-1位数 if len(str(a)) > n - 1: arr1.append(a) arr2.append(a) a = a + 1 maxPalindrome = 1 for i in arr1[::-1]: #从后面往前开始遍历,取得最大的回文数 for j in arr2[::-1]: if i*j > maxPalindrome and is_palindrome(i*j): maxPalindrome = i*j print(maxPalindrome)

总结#

感觉算法太粗暴,运行效率较低,但一时还没想到更好的算法。

网易云课堂考试题-python
https://blog.kisnows.com/2015/01/29/python-neteasy-exam/
作者
Kisnows
发布于
2015-01-29
许可协议
CC BY-NC-ND 4.0