Показать сообщение отдельно
Старый 19.05.2015, 18:23   #2 (permalink)
MagentaTiger
Специалист
 
Аватар для MagentaTiger
 
Регистрация: 27.04.2015
Адрес: Москва
Сообщений: 1,423
Записей в дневнике: 4
Сказал(а) спасибо: 52
Поблагодарили 53 раз(а) в 16 сообщениях
Репутация: 18120
По умолчанию

Ну для затравки каждое 10 число можно перевести в двоичное, этому по моему учат еще в школе, классе этак в 7-ом.
Подсказка - каждый бит в двоичном числе переводится в 10 как сумма
2 в степени (позиция бита (считая слева от 0)) умноженная на значение бита,
т.е. 10001010 = 2^0*0 + 2^1*1 + 2^2*0 + 2^3*1 + 2^4*0+2^5*0+2^6*0+2^7*1=
0+2+0+8+0+0+0+128=138
Вам же надо провести обратную операцию, алгоритм примерно следующий:
1. ПеременнаяКолЕдиниц :=0
2. ПерменнаяЧисло:=0
3. Берем число из множества
4. Переводим его в двоичную систему
5. Подсчитывать сколько бит выставлено в 1
4. Если число единиц больше чем в сохранено в ПеременнаяКолЕдиниц,
то ПеременнаяКолЕдиниц :=число единиц, ПерменнаяЧисло:=Число из множества
5. Если не конец множества то к шагу 3
6. Вывести ПерменнаяЧисло
MagentaTiger вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070