O terceiro jogo de simulação do comprimento da sequência do 12º Blue Bridge Cup

1. Descrição do problema:

Para inteiros v e p, defina a sequência de perfuração como:
a [1] = v
a [i] = p% a [i-1]
Por exemplo, quando v = 8, p = 21, a sequência de perfuração correspondente é
a [ 1] = 8
a [2] = 5
a [3] = 1
Após o cálculo, o valor passa a 0, o que não está no escopo de nossa consideração. Portanto, quando v = 8, p = 21, o comprimento da sequência de perfuração é 3. Quando p é constante, o comprimento da sequência de perfuração pode ser diferente para diferentes valores de v. Quando p = 8, se 1 <= v <p, a sequência de perfuração mais longa aparece quando v = 13, é (13, 8, 5, 1) e o comprimento é 4. Quando p = 2021, a sequência Pierce mais longa aparece em v = 1160. Qual é a extensão dessa sequência?

2. Análise de pensamento:

Acho que a descrição deste tópico é muito problemática. Algumas descrições devem ser modificadas para: Quando p = 21, se 1 <= v <p, a sequência Pierce mais longa aparece em v = 13, na verdade, sabe-se que p , Depois de v, a sequência de perfuração correspondente pode ser obtida, de modo que o processo pode ser simulado

3. O código é o seguinte:

if __name__ == '__main__':
    v, p = 1160, 2021
    seq = [v]
    while seq[-1] != 0:
        seq.append(p % seq[-1])
    # 弹出最后一个为0的元素
    seq.pop()
    print(len(seq))

 

Acho que você gosta

Origin blog.csdn.net/qq_39445165/article/details/115143412
Recomendado
Clasificación