Как передать управление без цикла?

Рейтинг: 0Ответов: 3Опубликовано: 14.02.2023

мне нужно написать программу для перевода 10-х чисел в 2-ые. Можно ли как то сделать, чтобы выполнялось? Есть 2 проверки условий(if где n>1 и if div == 0). Мне нужно, чтобы первое условие выполнялось до того момента, пока не попадет в else. А второе, наоборот, если попадает в else, то начинает выполнение снова с 3 строки кода(где div обнуляется и снова идет первое условие) Код должен быть именно таким(задание по анализу сложности).

Cам код:

n = int(input('Введите число в 10СС = '))
txt = ""
div = 0
if n > 1:
    n -= 2
    div+=1
else:
    txt+=str(n)
if div == 0:
    print(txt)
else: n = div

Ответы

▲ 1

Этот код запрашивает у пользователя десятичное число, затем использует цикл while для преобразования этого числа в двоичное представление. В каждой итерации цикла мы получаем остаток от деления на 2, добавляем его в начало строки двоичного числа и делим десятичное число на 2.

Когда десятичное число становится равным 0, мы выводим строку двоичного представления числа.

# получаем десятичное число от пользователя
decimal_num = int(input("Введите десятичное число: "))

# инициализируем пустую строку, которая будет хранить двоичное представление числа
binary_string = ""

# пока десятичное число не равно 0
while decimal_num != 0:
    # получаем остаток от деления на 2 (это будет 0 или 1)
    remainder = decimal_num % 2
    # добавляем остаток в начало строки двоичного числа
    binary_string = str(remainder) + binary_string
    # делим десятичное число на 2 и округляем в меньшую сторону (отбрасываем дробную часть)
    decimal_num = decimal_num // 2

# выводим двоичное представление числа
print("Двоичное представление: " + binary_string)
▲ 0

Я немного не понял вопрос, попробуй засунуть всё это в цикл while Вот пример

n = int(input('Введите число в 10СС = '))
txt = ""
div = 0
while True:
    if n > 1:
        n -= 2
        div+=1
    else:
        txt+=str(n)
if div == 0:
    print(txt)
else: n = div

Если код не работает должным образом обьясни попонятнее что тебе надо сделать))

▲ 0
def dtob(n):
    d = 0
    res = ''
    while n > 0:
        d = n % 2
        n //= 2
        res += str(d)
    return res[::-1]


def main():
    n=int(input())
    print(dtob(n))


if __name__ == '__main__':
    main()

ВВод:

127

Вывод:

1111111