Просто выполняем алгоритм для каждой из клеток.
Например, 4 клетка в пятом ряду: у неё сверху стенка, поэтому она двигается вправо, оттуда опять вправо, оттуда еще раз вправо и врезается в стенку после 6-й клетки.
4 клетка в третьем ряду: у ней сверху нет стенки, снизу есть, поэтому робот движется влево. Затем снизу нет стенки, а сверху есть, поэтому робот возвращается обратно, и всё повторяется.
6 клетка во втором ряду: у неё ни сверху, ни снизу нет стенок, поэтому она стоит на месте.
Клетки, начав с которых, робот разбивается помечены персиковым цветом, в них указано, о какую стенку он разбивается. Клетки, начав с которых, робот делает конечное число шагов, отмечены бледно-оранжевым цветом, в них указано, в какой клетке остановится робот. Зелёные клетки удовлетворяют условию, их на рисунке 6.
Как могут соотноситься между собой числа:
(a) одно число 0, второе - нечетное в промежутке [1, 27] (получается, если в исходном числе одна четная цифра - 0 - и три нечетных, или три нуля и одно нечетное)
(b) одно число 0, второе - четное в промежутке [2, 36] (получается, если в исходном числе нет нечетных цифр или нет четных цифр или два нуля и две нечетные цифры)
(с) одно число четное в промежутке [2, 8], второе нечетное в промежутке [3, 27] (получается, если одна чётная цифра и три нечётных)
(d) одно число четное в промежутке [2, 24], второе нечетное в промежутке [1, 9] (получается, если одна нечётная цифра и три четных)
(e) оба числа четные, одно в промежутке [2, 18], второе в промежутке [2, 16] (получается, если две чётных цифры и две нечётных)
Дальше каждое число (кроме 370) разбито на 2, в скобках стоит тот случай, под который подпадает число
236: 23, 6 (c, +)
1313: 13, 13 (-)
270: 27, 0 (a, +)
1114: 11, 14 (<, -)
1614: 16, 14 (e, +)
187: 18, 7 (c, +)
370: - (-)
294: 29, 4 (-)
40: 4, 0 (b, +)
Ответ. 5 чисел
Var A,m,k:integer;
Begin
Write('m = ');ReadLn(m);
k:=0;
For A:= 100 to 999 do
if A mod m = 0 then
Begin
Write(A,' ');
k:=k+1;
End;
WriteLn;
WriteLn('k = ',k);
End.
Пример работы программы:
m = 13
104 117 130 143 156 169 182 195 208 221 234 247 260 273 286 299 312 325 338 351 364 377 390 403 416 429 442 455 468 481 494 507 520 533 546 559 572 585 598 611 624 637 650 663 676 689 702 715 728 741 754 767 780 793 806 819 832 845 858 871 884 897 910 923 936 949 962 975 988
k = 69
Паскаль.
Сменой знака считается переход от отрицательного к нулю, от нуля к положительному, от отрицательного к положительному и наоборот. По крайней мере в условии не сказано обратное.
program progr1;
var count,i,n,x,znak,znak_old:integer;
begin
write('n-> '); readln(n);
count:=0;
for i:=1 to n do
begin
write(i,'-> '); readln(x);
if x < 0 then znak:=-1;
if x>0 then znak:=1;
if x=0 then znak:=0;
if i < > 1 then
if znak < > znak_old then count:=count+1;
znak_old:=znak;
end;
write('count=',count);
readln;
end.
1. Отсканированный текст является растровым изображением, а не текстовым документом.
2. Для распознавания текста необходимо найти на изображении характерные признаки текста (символов) и интерпретировать их в строки.