Pregunta diaria de Blue Bridge Cup (10): etiqueta de precio invertida (pitón)

Tema:

La tienda de Xiao Li se especializa en televisores de muestra que están disponibles en los estantes de otras tiendas. Se la puede llamar tienda de TV de muestra.
El precio es de 4 dígitos (es decir, miles de yuanes).
Para que el precio sea claro y conveniente, Xiao Li usó una etiqueta de precio prefabricada similar a un tubo digital, siempre que pintara los números con bolígrafos de colores (en la imagen).
Este tipo de etiqueta de precio tiene una característica, para algunas cifras, es razonable mirarla al revés. Por ejemplo: 1 2 5 6 8 9 0 está bien. De esta manera, si la marca cuelga al revés, puede cambiar completamente a otro precio. Por ejemplo: 1958 al revés es: 8561, ¡que son unos miles de yuanes de descuento!
Por supuesto, en la mayoría de los casos, no se puede leer al revés, por ejemplo, 1110 No se puede revertir, porque 0 no se puede usar como número inicial.
Un día, finalmente sucedió la tragedia. Un empleado colgó accidentalmente dos etiquetas de precios en la tienda. ¡Y los televisores de estas dos marcas de precio se han vendido!
Afortunadamente, la diferencia de precio no es grande. Una de las etiquetas de precio perdió más de 200, mientras que la otra etiqueta de precio ganó más de 800. En total, ganó más. 558 yuan.
Calcule basándose en esta información: ¿Cuál es el precio correcto de la etiqueta de precio que perdió dinero?

Solución:

Al principio, pensé que era un problema de permutación completo,
pero me di cuenta de que no era un problema de permutación completo hasta que descubrí que el resultado era incorrecto.
Primero, imprima la secuencia numérica original.
Siempre que el primer y el último dígito no son 0, la condición se puede cumplir.
Después de eso, la usé. La cola de dos extremos se invierte y 6 y 9 se intercambian al mismo tiempo
(es un poco más complicado, solo invierta según el orden de los dígitos) .
Luego, el número original, el número de reversiones y la diferencia que cumplen con las condiciones se colocan en la compensación de ganancia y pérdida. En la secuencia de
finalmente sumar el valor en la secuencia de obtención y el valor en la secuencia de pérdida entre sí. es el beneficio final

Código:

import collections

all_kinds = (1, 2, 5, 6, 8, 9, 0)
all_kinds_1 = []

for i in all_kinds:
    for j in all_kinds:
        for m in all_kinds:
            for n in all_kinds:
                if i != 0 and n != 0:
                    temp = i * 1000 + j * 100 + m * 10 + n
                all_kinds_1.append(temp)

lost = []
get = []

for x in all_kinds_1:
    res = []
    c = str(x)
    rev = collections.deque()

    for y in c:
        if y == '6':
            rev.appendleft('9')
        elif y == '9':
            rev.appendleft('6')
        else:
            rev.appendleft(y)

    rev = list(rev)
    revs = ''.join(rev)
    revs = int(revs)
    spr = revs - x

    if -300 < spr < -200:
        res.append(x)
        res.append(revs)
        res.append(spr)
        lost.append(res)
    elif 800 < spr < 900:
        res.append(x)
        res.append(revs)
        res.append(spr)
        get.append(res)


for d in lost:
    for e in get:
        c1 = d[2]
        c2 = e[2]

        check = c1 + c2
        if check == 558:
            print(d, e)

Respuesta:
9088

Supongo que te gusta

Origin blog.csdn.net/weixin_50791900/article/details/112725809
Recomendado
Clasificación