Форум » Циклы и ветвления » B8 » Ответить

B8

MichaelJDM: Как решить? Ниже записан алгоритм. Укажите набольшее из таких чисел , при вводе которых алгоритм печатает сначала 3, а потом 2. var x, a, b, c: integer; 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 10; end; writeln(a); writeln(b); end.

Ответов - 5

oval: проще всего, набрать в какой нибудь среде и прогнать в пошаговом режиме, или на бумажке для какого-нибудь числа прогнать и понять что делает программа

проол: Ясно, что если ЧИСЛО четное, то единица добавляется к а, а если нечетное - то к b. Цифры числа постепенно отрезаются. Значит в исходном числе должно быть 3 четные и 2 нечетные цифры. Причем, в ДВОИЧНОМ числе (т.к. определяем остаток от деления на 2, а он может быть только 0 или 1). Вывод, самое большое число: 11100. Переводим в десятичную: 38.

п: Прошу прощения, 3 четные и 2 нечетные цифры. Значит,самое большое число 11000. Т.е. 24 (двадцать четыре)


oval: проол пишет: Ясно, что если ЧИСЛО четное, то единица добавляется к а, а если нечетное - то к b. Цифры числа постепенно отрезаются. Значит в исходном числе должно быть 3 четные и 2 нечетные цифры. да Причем, в ДВОИЧНОМ числе а откуда такой вывод? ответ 99888 для 24 ответ будет 2 0

Поляков: oval пишет: ответ 99888 Это правильный ответ.



полная версия страницы