26.04.2025

Поляков р5 №194

# 194)	Автомат обрабатывает натуральное число N по следующему алгоритму:
# 1. Строится двоичная запись числа N без ведущих нулей.
# 2. Если в полученной записи единиц больше, чем нулей, то справа приписывается единица.
# Если нулей больше или нулей и единиц поровну, справа приписывается ноль.
# 3. Полученное число переводится в десятичную запись и выводится на экран.
# Какое наибольшее число, меньшее, чем 100, может получиться в результате работы автомата?
for n in range(1,100000):
    N=n
    n=bin(n)
    n=n[2:len(n):1]
    # print(n)
    n1=n.count("1")
    n0=n.count("0")
    if n1>n0:
        n=n+"1"
    else:
        n=n+"0"
    # print(n)
    r=int(n,2)
    if r<100:
        print(N)

Добавить комментарий