Ребят помогите пожалуйста .Нужен код(питон) ну или на крайняк ответ.
Алгоритм получает на вход натуральное число N> 1 и строит по нему новое число R следующим образом:
1) Строится двоичная запись числа N.
2) Подсчитывается количество нулей и единиц в полученной записи. Если их количество одинаково, в конец записи добавляется ее
последняя цифро. В противном случае в конец записи добавляется цифра, которая встречается реже.
3) Шаг 2 повторяется еще два раза.
4) Результат переводится в десятичную систему счисления,
При каком наименьшем исходном числе N> 100 в результате работы алгоритма получится число, которое делится на 4 и не делится на 8
Ответы
Ответ дал:
1
Ответ:
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)
Ответ дал:
1
Ответ:
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
Приложения:
![](https://st.uroker.com/files/64b/64bada7bed79c177b07f3a42e1a922a3.png)
Вас заинтересует
1 год назад
1 год назад
7 лет назад
7 лет назад
8 лет назад
8 лет назад