Ниже записан алгоритм. Укажите наименьшее из таких чисел , при вводе которых алгоритм печатает сначала 3, а потом 2.
var x, a, b, c: longint;
begin
readln(x);
a:= 0; b:= 0;
while x > 0 do begin
c:= x mod 2;
if c = 0 then a:= a + 1
else b:= b + 1;
x:= x div 8;
end;
writeln(a);
writeln(b);
end.
Ответ 4097 объясните как решить

18 Фев 2020 в 19:55
192 +1
0
Ответы
1

Для решения данной задачи необходимо найти число, которое после выполнения алгоритма выведет сначала 3, а потом 2.

Изучив алгоритм, можно заметить, что данное число должно содержать как минимум две "1" и один "0" в своем двоичном представлении. Также число должно быть кратно восьми, так как в алгоритме происходит деление на 8 (x:= x div 8).

Минимальное число, удовлетворяющее этим условиям, это число 4097.
Проверим:

4097 в двоичной системе: 1000000000001
После выполнения алгоритма:
a = 1 (количество нулей)
b = 3 (количество единиц)

Поэтому наименьшее число, при вводе которого алгоритм печатает сначала 3, а потом 2, равно 4097.

18 Апр в 17:03
Не можешь разобраться в этой теме?
Обратись за помощью к экспертам
Название заказа не должно быть пустым
Введите email
Бесплатные доработки
Гарантированные бесплатные доработки
Быстрое выполнение
Быстрое выполнение от 2 часов
Проверка работы
Проверка работы на плагиат
Интересные статьи из справочника
Поможем написать учебную работу
Название заказа не должно быть пустым
Введите email
Доверьте свою работу экспертам
Разместите заказ
Наша система отправит ваш заказ на оценку 84 706 авторам
Первые отклики появятся уже в течение 10 минут
Прямой эфир