Пожалуйста напишите подробное решение задачи (с прокруткой или рассуждением) Укажите...

0 голосов
53 просмотров

Пожалуйста напишите подробное решение задачи (с прокруткой или рассуждением)
Укажите наименьшее из таких чисел , при вводе которых алгоритм печатает сначала 4, а потом 0.

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.


Информатика (14 баллов) | 53 просмотров
Дан 1 ответ
0 голосов

Нужно, чтобы при выводе переменная a = 4, b = 0. Алгоритм работает так: к "a" прибавляет единицу при условии, что оно четное, к "b", если нечетное. Поэтому нужно найти число, которое четырехзначное и четное, учитывая, что после каждого прогона цикла, число делят на 10, то есть "отсекают" последнюю цифру числа.

У меня получилось минимальное - 2000.

1)
c = 2000 mod 2;
c = 0 -> a = 0 + 1.
x = 2000 div 10.
2) c = 200 mod 2;
c = 0 -> a = 1 + 1.
x = 200 div 10.
3) c = 20 mod 2.
c = 0 -> a = 2 + 1.
x = 20 div 10.
4) c = 2 mod 2.
c = 0 -> a = 3 + 1.
x = 2 div 10.

Итого на выводе получаем (4 0), что и нужно было.

(8.6k баллов)
0

спасибо большое