Ниже на пяти языках программирования записана программа, которая вводит натуральное число выполняет преобразования, а затем выводит два числа.
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
Укажите наименьшее возможное значение при вводе которого программа выведет сначала а потом
Показать разбор и ответ
В алгоритме используется остаток от деления на а при каждом проходе цикла нацело делится на Эти действия соответствуют разбору цифр в двоичной записи: остаток от деления показывает последнюю цифру записи, а целое деление отбрасывает эту цифру.
В результате работы алгоритма значением переменной будет количество нулей в двоичной записи исходного числа, а значением – количество единиц в этой записи.
По условию исходное число должно быть минимальным. Значит, нужно записать минимальное двоичное число из трёх нулей и двух единиц. Это число
Ответ: 17
Это задание составили эксперты «СтатГрада» для Яндекса
Это задание решали 9 тыс. раз. С ним справились 64% пользователей.