Вложенный для l oop останавливается после 2-й итерации и запрашивает ввод пользователя (не используется функция ввода в коде python) - PullRequest
0 голосов
/ 05 августа 2020

Внешний для l oop не взаимодействует по всей последовательности 'L1'. Итерация останавливается после первых двух значений [т.е. после (10,3,3)].

После отображения вывода для первых двух элементов в L1 отображается сообщение «Программа все еще выполняется» и запрашивается для ввода. (Как ни странно, я не использовал функцию input нигде во всем коде)

Код -

    import random
    import array
    L1 = [(12, 8, 3), (10, 3, 3), (9, 7, 2), (6, 10, 2)]
    
    for val in L1:
        n = val[0]
        k = val[1]
        b = val[2]
        if b >= 1 and b <= (10^5) and n >= 1 and k <= (10^18) and b <= k :
            L5 = list(range(1, k+1))
            A = 0
            for z in L5:
                A = A+z
            print(A)
            while A >= n:
                L3 = []
                for w in range(0, b):
                    p = random.randint(1, k)
                    L3.append(p)
                S3 = set(L3)
                L4 = list(S3)
                if len(L4) != 3:
                    continue
                else:
                    print('I worked for', n, k, b)
                break
            else:
                print('I printed -1 for' ,n,k, b )
                

1 Ответ

1 голос
/ 05 августа 2020

Вы застряли в while A >= n l oop. Ваш A не меняется внутри этого l oop, а continue внутри if len(L4) != 3 мешает вам достичь break. Следовательно, l oop становится бесконечным.

...