Я решил проблему с платформой кодирования, и есть операторы 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 или в чем разница между двумя вышеуказанными кодами, помогите.