HomeVolumesContestsSectionsForumsUsersPrintHelpAbout

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


04_02_10

Volume problems

• 01_07
• 02_02
• 04_02_05
• 04_02_06
• 04_02_07
• 04_02_08
• 04_02_09
• 04_02_12
• 04_02_10
• 04_02_11
• 04_02_13
• 06_01
• 06_02
• 10_02_01
• 10_02_02
• 10_02_03
• 10_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.


На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
1) Строится двоичная запись числа N.
2) К этой записи дописывается (дублируется) последняя цифра.
3) Затем справа дописывается бит чётности: 0, если в двоичном коде полученного числа чётное число единиц, и 1, если нечётное.
4) К полученному результату дописывается ещё один бит чётности.
Полученная таким образом запись (в ней на три разряда больше, чем в записи исходного числа N) является двоичной записью искомого числа R.
Напишите функцию, которая определяет минимальное число N, после обработки которого автомат получает число, большее K.

Пример: K = 114, N = 15.
Входные данные: 114
Выходные данные: 15

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

www.contester.ru