Функция перевода десятичного числа в двоичное

Задача

Переводить в двоичную систему счисления вводимые в десятичной системе счисления числа до тех пор, пока не будет введен 0. Для перевода десятичного числа в двоичное написать функцию.

Пояснение к задаче и алгоритм решения

В основной ветке программы выполнять бесконечный цикл, в котором

  1. запрашивать десятичное число,
  2. если оно не ноль, то вызывать функцию перевода его в двоичное представление и выводить результат работы функции на экран,
  3. иначе (когда введен 0) прерывать цикл оператором break.

Функция должна принимать десятичное число и возвращать двоичное (в строковом виде). В теле функции будет поэтапно находиться остаток от деления на 2 последней цифры, после чего само число будет сокращаться путем деления его нацело на 2. Остаток от деления должен быть преобразован в строковое представление и присоединен впереди формируемой строки двоичного представления числа.

Исходный код на языке программирования Pascal

var
    decimal: word;
 
function binary(decimal:word):string;
    var s: string[1];
    begin
        binary := '';
        while decimal > 0 do begin
            str(decimal mod 2, s);
            binary := s + binary;
            decimal := decimal div 2
        end;
    end;
 
begin
    while True do begin
        write('Decimal: ');
        readln(decimal);
        if decimal <> 0 then
            writeln(binary(decimal))
        else break;
    end;
end.

Пример(ы) выполнения программы на языке Pascal

Decimal: 100
1100100
Decimal: 15
1111
Decimal: 1984
11111000000
Decimal: 201
11001001
Decimal: 255
11111111
Decimal: 0

Исходный код на языке программирования Python

def binary(n):
    s = ''
    while n > 0:
        s = str(n%2) + s
        n //= 2
    return s
 
while 1:
    n = int(input())
    if n != 0:
        print(binary(n))
    else:
        break

Исходный код на языке программирования КуМир

алг
нач
  цел num
  нц пока да
    ввод num
    если num <> 0 то
      вывод binary(num), нс
     иначе
      выход
    все
  кц
кон
 
алг лит binary(цел n)
нач
  лит c
  цел m
  m := n
  знач := ""
  нц пока m > 0
    c := цел_в_лит(mod(m,2))
    знач := c + знач
    m := div(m,2)
  кц
кон

Тема

Функции

Уровень сложности

Средний

Дата публикации