Вопрос задан 16.06.2023 в 05:23. Предмет Информатика. Спрашивает Ржанова София.

Ребят помогите пожалуйста .Нужен код(питон) ну или на крайняк ответ. Алгоритм получает на вход

натуральное число N> 1 и строит по нему новое число R следующим образом: 1) Строится двоичная запись числа N. 2) Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется ее последняя цифро. В противном случае в конец записи добавляется цифра, которая встречается реже. 3) Шаг 2 повторяется еще два раза. 4) Результат переводится в десятичную систему счисления, При каком наименьшем исходном числе N> 100 в результате работы алгоритма получится число, которое делится на 4 и не делится на 8
0 0
Перейти к ответам

Ответы на вопрос

Внимание! Ответы на вопросы дают живые люди. Они могут содержать ошибочную информацию, заблуждения, а также ответы могут быть сгенерированы нейросетями. Будьте внимательны. Если вы уверены, что ответ неверный, нажмите кнопку "Пожаловаться" под ответом.
Отвечает Подолей Каріна.

Ответ:

135

Объяснение:

def increase(n_bin):

zero_count = sum([digit == '0' for digit in n_bin[2:]])

if zero_count * 2 == len(n_bin[2:]):

 return n_bin + n_bin[-1]

else:

 return n_bin + str(int((zero_count > len(n_bin[2:]) / 2)))

def alg(n):

return int(increase(increase(increase(bin(n)))), 2)

n = 101

while True:

if alg(n) % 4 == 0 and alg(n) % 8 != 0:

 break

n += 1

print(n)

0 0
Отвечает Жезедков Егор.

Ответ:

n = 135

Объяснение:

def getres(a):

   b=bin(a)[2:]

   for i in range(3):

       zero=b.count('0')

       one=len(b)-zero

       if zero==one:

           b+=b[len(b)-1]

       elif zero>one:

           b+='1'

       else:

           b+='0'

   return int(b,2)

for n in range (100, 1000):

   p=getres(n)

   if p%4==0 and p%8!=0:

       print('Число=', p, ' при n=',n)

       break


0 0
Отвечает нейросеть ChatGpt. Будьте внимательны, ответы нейросети могут содержать ошибочные или выдуманные данные.

Для решения этой задачи, мы можем написать следующий код на Python:

```python def count_zeros_ones(N): binary = bin(N)[2:] zeros = binary.count('0') ones = binary.count('1') if zeros == ones: return int(binary + binary[-1], 2) else: if zeros < ones: return int(binary + '0', 2) else: return int(binary + '1', 2)

N = 101 while True: result = count_zeros_ones(N) if result % 4 == 0 and result % 8 != 0: print(N) break N += 1 ```

Этот код реализует алгоритм, описанный в задаче. Мы начинаем с числа N =

0 0

Похожие вопросы

Топ вопросов за вчера в категории Информатика

Последние заданные вопросы в категории Информатика

Задать вопрос