Помогите написать программу на пайтоне. Не совсем понимаю, что от меня хотят.
Сегодня знаменательный день! В Межгалактическом Обществе Программистов сразу у 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

Ответы

Ответ дал: 25qwerty88174
1

Ответ:

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

# ввод n

n = int(input())

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

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


kendoket: Спасибо большое, даже не знаю как вас отблагодарить:3
SanyPro: Заслал, не рботает...
darka250306: и как это вводить?
levob10248: Блин, не работает!
kendoket: Это конечно странно, но у меня работают 2 программы.
25qwerty88174: сначала вводится n, потом через пробел n чисел, все работает
Ответ дал: SanyPro
1

Ответ:

n = int(input())

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

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

Объяснение:

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


levob10248: Спасибо, зашло!
darka250306: и как это вводить?
kendoket: Сначала первое число, потом нажимаешь ентер. Затем последующие 3 числа, но уже через пробел, например, " 1 2 4 ", а не " 124 ". И нажимаешь ентер
25qwerty88174: Неверное решение. При вводе n=5 и последующих чисел 25 30 109 5 2 ответ должен быть 15, а эта программа выведет 10.
Вас заинтересует