что произойдет, если я поменяю местами операторы if и else? - PullRequest
0 голосов
/ 26 апреля 2020

Я решил проблему с платформой кодирования, и есть операторы if-else, которые оказали большое влияние на результаты, но я не понимаю, почему это происходит.

SPOILER: - этот код является решением для Day10: двоичные числа хакерранка «30 дней кода». Задача была такой:

Task Учитывая целое число-10, n, преобразовать его в двоичную (база-2). Затем найдите и напечатайте целое число base-10, обозначающее максимальное количество последовательных 1 в двоичном представлении n.

Пример ввода 1

5

Пример вывода 1

1

правильный код для этого:

    n = int(input())
    b=str(bin(n))
    count=0
    res=0
    for i in b:
        if(i=='1'):
            count+=1
            res=max(res,count)
        else:
            count=0      
print(res)

Но если бы я изменил оператор if-else следующим образом:

 n = int(input())
b=str(bin(n))
count=0
res=0
for i in b:
    if(i=='0'):
        count=0      
    else:
        count+=1
        res=max(res,count)

print(res)

Для этого взаимозаменяемого if- операторы else Я получаю неправильный вывод:

Пример ввода 1

5

Пример вывода 1

2

Я не понимаю, почему счетчик не присваивается нулю в заменяемом операторе if-else или в чем разница между двумя вышеуказанными кодами, помогите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...