抹桥的博客
Language
Home
Archive
About
GitHub
Language
主题色
250
197 words
1 minutes
Netease Cloud Classroom Exam Questions - Python
2015-01-29

Problem Statement:#

The largest palindrome formed by the product of two 2-digit numbers is 9009 = 99 × 91. Write a program to find the largest palindrome formed by the product of two n-digit numbers, where n is an arbitrary input. Input Format: A positive integer n Output Format: The largest palindrome formed by the product of two n-digit numbers Sample Input: 2 Sample Output: 9009

Program:

    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)

Summary#

I feel the algorithm is too brute-force and has low operational efficiency, but I haven’t thought of a better algorithm yet.

This article was published on January 29, 2015 and last updated on January 29, 2015, 3903 days ago. The content may be outdated.

Netease Cloud Classroom Exam Questions - Python
https://blog.kisnows.com/en-US/2015/01/29/python-neteasy-exam/
Author
Kisnows
Published at
2015-01-29
License
CC BY-NC-ND 4.0