На вход алгоритма подаётся натуральное число N. Алгоритм строит по нему новое число R следующим образом.
- Строится двоичная запись числа N.
- Далее эта запись обрабатывается по следующему правилу:
а) если число N делится на 3, то к этой записи дописываются 2 последние двоичные цифры;
б) если число N на 3 не делится, то остаток от деления умножается на 3, переводится в двоичную запись и дописывается в конец числа.
Полученная таким образом запись является двоичной записью искомого числа R. - Результат переводится в десятичную систему и выводится на экран.
Например, для исходного числа 9= результатом является число = 37, а для исходного числа 10 = это число = 43.
Укажите минимальное число R, не меньшее, чем 195, которое может быть получено в результате работы алгоритма.
Решение:
Решение на Python:
otv = []
for n in range(1, 1000):
r = bin(n)[2:]
if n % 3 == 0: r = r + r[-2:]
else: r =r + bin(n % 3 * 3)[2:]
r = int(r, 2)
if r >= 195: otv.append(r)
print(min(otv))
Ответ: 199
Ответ:
199