HomeVolumesContestsSectionsForumsUsersPrintHelpAbout

Volumes > Tasks for 2 course of C++ > problem:


10_02_12

Volume problems

• 10_02_01
• 10_02_02
• 10_02_03
• 10_02_04
• 10_02_05
• 10_02_06
• 10_02_07 - битовые операции (за...
• 10_02_08
• 10_02_12
• 11_01_01
• 11_01_02
• 11_02_01
• 11_02_02
• 11_02_03
• 11_02_04

Feedback

If you notice incorrect translations in Contester, please let author know.

Time limit 2000/4000/4000/4000 ms. Memory limit 65000/65000/65000/65000 Kb.

Задание 10_02_12 - битовые операции (12 задание)


Гарри Поттер заказал себе волшебную палочку на АлиЭкспрессе. В инструкции к палочке написано, что она умеет изменять количество предметов (из A предметов делать B), но работает только в двоичной системе и побитово. Например, если Гарри Поттер хочет из 5 кактусов получить 15 кактусов, вначале он должен перевести оба числа в двоичную систему счисления (5 -> 101, 15 -> 1111), затем сделать 2 взмаха волшебной палочкой: 101 -> 111 -> 1111. Напишите программу, которая получает на вход два числа A и B и определяет, какое количество взмахов волшебной палочкой потребуется сделать Гарри Поттеру, чтобы превратить А предметов в В.
Совет: все переменные делайте типом unsigned int (иначе в логически правильной программе могут быть ошибки из-за конвертации).
При решении задачи нельзя использовать операции % и /. Допустимо использовать только операции &, |, ^, ~, >>, << и циклы.

Входные данные:

Два целых неотрицательных числа: числа А и В.

Выходные данные:
Количество взмахов волшебной палочкой.

Примеры:

Входные данные: 5 15
Выходные данные: 2

Для отправки решений необходимо выполнить вход.

www.contester.ru