Задача 3 Урок 18
Primary tabs
Имеется текстовый файл в котором содержится не более 30 строк, в каждой строке не более 30 символов (пробелы тоже считаются символами). Цифры и другие символы перемешаны в каждой строке.
Задание: найдите максимальное число, c учетом того, что числом считаются подряд идущие цифры не только по горизонтали, но и по вертикали.
1234fsd334rgd
rfg46gdfg
ter5tge56
123gergf
Ответ: 345
1234fsd334rgd
r fg
ter5tge56
123gergf
Ответ: 334
1234fsd334rgd
r16hyj3f7
23tge6f57
123gergf7
Ответ: 777
1234567891011121314
\|/
-->*<--
/o\
/_\_\
/_/_0_\
/_o_\_\_\
/_/_/_/_/o\
/@\_\_\@\_\_\
/_/_/O/_/_/_/_\
/_\_\_\_\_\o\_\_\
/_/
0
/_/_/20_/_/@/_\
/_\_\_\_\_0_\_\_\_\_\
/_/o/_/_/@/
2
/_/o/_/
0
/_\
[_1_]
Ответ: 2021
ПРИМЕЧАНИЕ: задача взята из списка соревнования IFF 2020
var f1: text; filename, s, n: string; i, j, c, int, o, max, smax: integer; a: array [1..30] of string; begin filename := 'F:\Pascal\урок 18\input.txt'; assign(f1, filename); reset(f1); while not eof(f1) do begin readln(f1, s); c += 1; a[c] := s; n := ''; if smax < length(s) then smax := length(s); for i := 1 to length(s) + 1 do begin val(s[i], int, o); if o = 0 then n += s[i] else begin val(n, int, o); if int > max then max := int; n := ''; end; end; end; for i := 1 to c do for j := 1 to smax do if length(a[i]) < smax then a[i] += ' '; for i := 1 to smax do begin n := ''; for j := 1 to c do begin val(a[j][i], int, o); if o = 0 then begin n += a[j][i]; if j = c then val(n, int, o); end else begin val(n, int, o); n := ''; end; if int > max then max := int; end; end; for i := 1 to c do writeln(a[i], '|'); writeln('Максимальное число: ', max); readln(); end.
- Log in to post comments
- 652 reads