В
Все
М
Математика
А
Английский язык
Х
Химия
Э
Экономика
П
Право
И
Информатика
У
Українська мова
Қ
Қазақ тiлi
О
ОБЖ
Н
Немецкий язык
Б
Беларуская мова
У
Українська література
М
Музыка
П
Психология
А
Алгебра
Л
Литература
Б
Биология
М
МХК
О
Окружающий мир
О
Обществознание
И
История
Г
Геометрия
Ф
Французский язык
Ф
Физика
Д
Другие предметы
Р
Русский язык
Г
География
melenam08041974
melenam08041974
08.06.2020 23:19 •  Информатика

написать программу на пайтоне. Не совсем понимаю, что от меня хотят. Сегодня знаменательный день! В Межгалактическом Обществе Программистов сразу у n программистов день рождения! Поскольку программисты в этом обществе – очень дружный народ, они решили отпраздновать эти дни рождения все вместе.

Как известно, все разумные существа во вселенной в день рождения зажигают свечки на торте. Программисты зажигают свечки в соответствии с двоичной записью числа. Например, если программисту исполнилось 24 года, он втыкает в торт 5 свечек и зажигает только первые 2, поскольку 2410 = 110002, a если ему исполнилось 31, то придется зажечь все 5 свечек.

Программисты быстро заметили, что если свечка не была зажжена то ее можно вытащить из торта и воткнуть в следующий. Конечно, они не хотят расходовать лишних свечек и поэтому решили посчитать, в каком порядке стоит праздновать дни рождения, чтобы минимизировать их расход.

Поскольку общество межгалактическое, в нем есть индивиды самого разного возраста от 1 до 109 лет.

Напишите программу, которая определяет наименьшее количество свечек, которое потребуется, чтобы отпраздновать все дни рождения.

Формат входных данных
В первой строке находится одно число n (1 ≤ n ≤ 100) – количество программистов.

Во второй строке находится n чисел ai (1 ≤ ai ≤ 109) – сколько лет исполняется каждому программисту.

Формат результата
В единственной строке выведите одно целое число – минимальное количество свечек, которые придется потратить.

Примеры
Входные данные
3
1 2 4
Результат работы
3
Входные данные
3
5 2 1
Результат работы
4

Показать ответ
Ответ:
Ovhinoco
Ovhinoco
03.01.2022 23:04

# смысл программы -- посчитать количество единичных битов в переведенных в двоичную сс чисел

# ввод n

n = int(input())

#печатаем сумму единиц у чисел после перевода

print(sum(sum(int(u) for u in bin(int(x)) if u=='1') for x in input().split()))

0,0(0 оценок)
Ответ:
Gusuanskiy
Gusuanskiy
03.01.2022 23:04

n = int(input())

numbers = [int(i) for i in input().split()]

print(n + sum(numbers) // (2 ** n))

Объяснение:

Зашло!!1!1!)

0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота