Pregunta diaria de Blue Bridge Cup (14): Wugong Cheats (pitón)

Tema:

Xiao Ming fue a la cueva X para explorar y encontró un libro de trucos de artes marciales dañado (¡más de 2000 páginas! Por supuesto que es una falsificación).
Notó que las páginas 10 y 11 del libro están en el mismo papel, pero las páginas 11 y 12 no están en el mismo papel.
Xiao Ming solo quiere practicar artes marciales desde la página 81 hasta la página 92 ​​del libro, pero no quiere traer el libro completo. ¿Puedo preguntar cuántos trozos de papel debe arrancar al menos para llevarse?

Solución_1:

Por ejemplo, solo se determina una operación de salida por parte del cerebro humano,
pero para una pluralidad de escritura para un algoritmo ejemplar para determinar
puntos se determina cuatro casos
son
los primeros extremos impares con un
primer extremo par-impar con un
primer final con un número par es un número par
El primer dígito es par y el último dígito es impar

Luego, haga un juicio y una salida separados para cada situación.

Código_1:

def pages(b, s):
    if b % 2 == 0 and s % 2 == 0:
        return (s - b) / 2 + 1
    elif b % 2 == 0 and s % 2 != 0:
        return (s - b + 1) / 2
    elif b % 2 != 0 and s % 2 == 0:
        return (s - b + 1) / 2 + 1
    elif b % 2 != 0 and s % 2 != 0:
        return (s - b) / 2 + 1


print(pages(81, 92))

Solución_2:

También puede usar la recursividad para resolver este problema.
Dude que el conteo + 1 sea posterior a la página + 1,
por lo que cuando la página de detección sea un número impar, cuente + 1

Código_2:

def pages(page, b, s, count_1, count_2):
    if page == s and s % 2 != 0:
        return count_1 - count_2
    elif page == s and s % 2 == 0:
        return count_1 - count_2 + 1

    if page == b and page % 2 != 0:
        return pages(page + 1, b, s, count_1 + 1, count_1)
    elif page == b and page % 2 == 0:
        return pages(page + 1, b, s, count_1, count_1)

    if page % 2 != 0:
        return pages(page + 1, b, s, count_1 + 1, count_2)
    elif page % 2 == 0:
        return pages(page + 1, b, s, count_1, count_2)


print(pages(0, 1, 12, 0, 0))

Responder:

7

Supongo que te gusta

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