Найти в начальном числе самую длинную часть, где цифры расположены в порядке возрастания - Pascal ABC
Формулировка задачи:
9-значное число закодированное в виде 18-символьной строки, на каждом четном месте которого записана цифра, а на нечетной - положение этой цифры в начальном числе. Найти в начальном числе самую длинную часть, где цифры расположены в порядке возрастания.
Помогите решить.
Решение задачи: «Найти в начальном числе самую длинную часть, где цифры расположены в порядке возрастания»
textual
Листинг программы
var s,n,t:string; i,j:integer; begin write('Введите строку:'); readln(s); n:=' '; for i:=1 to length(s) do if odd(i) then j:=ord(s[i])-48 else n[j]:=s[i]; t:=''; s:=''; for i:=1 to length(n)-1 do begin t:=t+n[i]; if n[i]>=n[i+1] then begin if length(t)>length(s) then s:=t; t:=''; end; end; writeln('Самая длинная возрастающая последовательность:',s); end.
Объяснение кода листинга программы
- Вводится строка с помощью функции readln.
- Создаются три переменные: s, n и t.
- Переменная n инициализируется пустой строкой.
- Переменная t инициализируется пустой строкой.
- Запускается цикл for для каждого символа в строке s.
- Внутри цикла проверяется, является ли текущий индекс нечетным. Если да, то вычисляется порядковый номер текущего символа в строке.
- Если текущий символ больше следующего, то обновляется значение переменной t.
- Переменная n инициализируется значением текущего символа.
- Переменная s инициализируется пустой строкой.
- Если длина строки t больше длины строки s, то значение переменной s обновляется на t.
- Переменная t сбрасывается обратно в пустую строку.
- Цикл for завершается.
- Выводится сообщение о самой длинной возрастающей последовательности.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д