Форум программистов, компьютерный форум, киберфорум
Python
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
1 / 1 / 3
Регистрация: 03.04.2016
Сообщений: 51

Редкая ошибка при подсчетах

08.05.2018, 09:38. Показов 811. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Прохожу тесты на Codifity (для общего развития). Одно задание звучит так:

"Бинарный разрыв положительного целого числа. N - любая максимальная последовательность последовательных нулей.

Например, номер 9 имеет двоичное представление 1001 и содержит двоичный разрыв длины 2. Число 529 имеет двоичное представление 1000010001 и содержит два двоичных разрыва: один из длины 4 и один из длины 3. Число 20 имеет двоичное представление 10100 и содержит один двоичный разрыв длины 1. Число 15 имеет двоичное представление 1111 и не имеет двоичных разрывов.

Напишите функцию:

def solution (N)

что, учитывая положительное целое число N, возвращает длину своего самого длинного двоичного разрыва. Функция должна возвращать 0, если N не содержит двоичный разрыв.

Например, при N = 1041 функция должна возвращать 5, потому что N имеет двоичное представление 10000010001, и поэтому его самый длинный двоичный разрыв имеет длину 5.
"
Моя реализация:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
def solution(N):
    array = []
    while N >= 1:
        array.append(N % 2)
        N = N // 2
    if N == 1:
        array.append(N)
    array.reverse()
    count = 0
    result = 0
    for element in array:
        if element == 0:
            count += 1
        else:
            if count > result:
                result = count
                count = 0
    return result
Результаты тестов показали что при некоторых значениях функция выдает не верный результат:
561892, 74901729, 1376796946

Я тестировал построчно значение 1376796946:

Python
1
2
3
4
if count > result:
        print(count)
        result = count
        count = 0
[1, 0, 1, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 0, 1, 0]
А при пошаговом подсчете мне выдало:
1
2
4
5
8
8

Кто нибудь знает почему так происходит?
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.05.2018, 09:38
Ответы с готовыми решениями:

Работа с series в цикле. Ошибка в подсчетах
я хочу в s записать элементы в виде отношений себя к предыдущему элементу то есть s=s/s пример массив: 1 2 4 6 8 10 вывод: Nan 2 2...

Ошибка при подсчетах - 2
Что то не хочет у меня работа с маткадом быть легкой. Прошу помощи вновь

Ошибка при подсчетах "значение не может быть векторным"
ЗДравствуйте, помогите пожалуйста с решением проблемы. ПРи подсчете пишет "значение не может быть векторным". Уже все, что только...

1
677 / 479 / 216
Регистрация: 06.09.2013
Сообщений: 1,312
08.05.2018, 10:11
Python
1
2
def solution(n):
    return max(map(len, bin(n)[2:].split('1')[:-1]))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
08.05.2018, 10:11
Помогаю со студенческими работами здесь

Редкая и очень интересная ошибка
Доброго времени суток. Ошибка заключается в следующем: компьютер с винхп сп3; есть фотография/изображение в любом граф. формате; ...

Редкая ошибка, связанная с переполнением стека
Значит ситуация такая, вот весь код он полностью рабочий, но для перегрузки потокового ввода вылетает и пишет, что стек переполнен. Сколько...

Увеличение точности при подсчетах
Есть полностью рабочая программа, она находит корень К из числа Х с точностью prec. Работает все хорошо, но при подсчетах с дробовыми...

Игнорирование Н/Д ячеек при подсчетах
Привет Хочу подсчитать общий балл, начиная от B6 до B13, используя функцию СУММ =СУММ(B6:B13) Но дело в том, что у меня в...

Floating point overflow при подсчетах
Здравствуйте Помогите, вот в одном выражении (когда выполняю программу) выдает floating point overflow На Турбо Паскале эта проблема...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2. В качестве источника данных. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при создании или изменении элементов справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной записи электронной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru