Número de palíndromo especial para ejercicios básicos de la Copa Lanqiao (implementado en python)

Límite de recursos Límite de
tiempo: 1,0 s Límite de memoria: 512,0 MB

Descripción del problema
123321 es un número muy especial, se lee desde la izquierda y se lee desde la derecha es el mismo.
Ingrese un entero positivo n, y programe para encontrar todos esos números decimales de cinco y seis dígitos para que la suma de cada dígito sea igual an.

Formato de
entrada Introduzca una línea, incluido un entero positivo n.
  
El formato de salida de
acuerdo con el orden de pequeño a grande genera un número entero que satisface la condición, cada número entero por línea.
  
Entrada de muestra
52

Salida de muestra
899998
989989
998899

Escala de datos y convención
1 <= n <= 54


Código enviado por primera vez:

# 遍历所有五位数和六位数,
# 求各位数字之和判断是否等于n,
# 接着将数字转成字符串再逆转然后判断是否为回文数
n = int(input())
for i in range(10000,1000000) :
    num = str(i)
    result = 0
    for j in num :
        result += int(j)
    if result == n and num == num[::-1] :
        print(num)

Resultado: tiempo de espera severo! El análisis encontró que hay dos bucles en el medio, y la suma también es un bucle, y para los números que no son "números palíndromos especiales", también se realiza la operación de suma y se realizan muchas operaciones no válidas.


Código enviado por segunda vez:

# 先判断是回文数,再求和
n = int(input())
for i in range(10000,1000000) :
    num = str(i)
    if num == num[::-1] :
        result = 0
        for j in num :
            result += int(j)
        if result == n :
            print(num)

El resultado: ¡sobresaliente! Pero tomó 390ms


El tercer código enviado:

n = int(input())
my_list = []
for i in range(100,1000) :
	# 如果该数字是6位数
    if sum(map(int,str(i) + str(i)[::-1])) == n :
        my_list.append(str(i) + str(i)[::-1])
        
    # 如果该数字是5位数
    if sum(map(int,str(i) + str(i)[:2][::-1])) == n :
        my_list.append(str(i) + str(i)[:2][::-1])
for i in sorted(map(int,my_list)) : # 排序
    print(i)

El resultado: ¡sobresaliente! Tarda 31 ms. Mediante el procesamiento simétrico, se reducen muchas operaciones.

Supongo que te gusta

Origin blog.csdn.net/weixin_43974265/article/details/104864741
Recomendado
Clasificación