Ниже на пяти языках программирования записана программа, которая вводит натуральное число выполняет преобразования, а затем выводит два числа.
DIM X, A, B AS INTEGER
INPUT X
A = 0: B = 0WHILE X > 0IF X MOD2 > 0THEN
A = A + 1ELSE
B = B + 1ENDIF
X = X \ 2
WEND
PRINT A, B
Укажите наименьшее возможное значение при вводе которого программа выведет сначала а потом
Показать разбор и ответ
В алгоритме используется остаток от деления на а при каждом проходе цикла нацело делится на Эти действия соответствуют разбору цифр в двоичной записи: остаток от деления показывает последнюю цифру записи, а целое деление отбрасывает эту цифру.
В результате работы алгоритма значением переменной будет количество единиц в двоичной записи исходного числа, а значением – количество нулей в этой записи.
По условию исходное число должно быть минимальным. Значит, нужно записать минимальное двоичное число из трёх единиц и двух нулей. Это число
Ответ: 19
Это задание составили эксперты «СтатГрада» для Яндекса
Это задание решали 5 тыс. раз. С ним справились 72% пользователей.