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

maksim446681 maksim446681    2   27.08.2019 07:50    0

Ответы
ivannanikolaeva ivannanikolaeva  05.10.2020 22:26
В каждом дереве 2^n узлов. Поскольку надо найти наименьшее количество деревьев, надо разбить число 2947 на слагаемые, которые представляют собой степени двойки, причем каждое новое отделяемое слагаемое должно быть максимальной степенью двойки, "влезающей" в остаток. Количество слагаемых будет являться ответом.
2947 = 2048 + 899 = 2048 + 512 + 387 = 2048 + 512 + 256 + 131 = 2048 + 512 + 256 + 128 + 3 = 2048 + 512 + 256 + 128 + 2 + 1
ответ: 6.

Иными словами, переводим число 2947 в двоичную систему и считаем количество единиц в записи числа.
ПОКАЗАТЬ ОТВЕТЫ
Другие вопросы по теме Информатика