Составить из имеющихся четных цифр максимальное число, читающееся одинаково слева направо и наоборот - Pascal
Формулировка задачи:
На вход подается набор символов, оканчивающийся точкой. Количество символов не превышает 200.
Составить из имеющихся в тексте четных цифр максимальное число, которое читается одинаково как
слева направо, так и справа налево. Все цифры можно не использовать; незначащих нулей в числе не
должно быть. Если требуемое число составить нельзя, то вывести строку «NO»; если можно, то в
первой строке вывести строку «YES», а во второй — строку, изображающую найденное число.
Решение задачи: «Составить из имеющихся четных цифр максимальное число, читающееся одинаково слева направо и наоборот»
textual
Листинг программы
var s,s1:string; c:char; i,k,j:byte; begin readln(s); s1:=''; for c:='0' to '9' do if ord(c)mod 2=0 then begin k:=0; for i:=1 to length(s) do if s[i]=c then k:=k+1; writeln(c,'=',k); if k>0 then begin if s1='' then for j:=1 to k do s1:=s1+c else if(length(s1)=1)and(k=1)and(c>s1[1])then s1:=c else for j:=1 to k div 2 do begin insert(c,s1,1); insert(c,s1,length(s)+1); end; end; end; if s1='' then write('NO') else write(s1); end.
Объяснение кода листинга программы
- Объявление переменных:
s
иs1
- строкиc
- символi
,k
, иj
- байты
- Чтение входной строки
s
. - Инициализация пустой строки
s1
. - Цикл по символам от '0' до '9', выбор каждой четной цифры.
- Если текущий символ
c
является четной цифрой:- Инициализация переменной
k
равной 0. - Цикл по индексам исходной строки
s
, подсчет количества вхождений текущей цифрыc
и вывод результата. - Если количество вхождений
k
больше 0: - Если строка
s1
пустая, добавлениеk
копий текущей цифрыc
в строкуs1
. - Если длина строки
s1
равна 1 иk
равно 1, и текущая цифраc
больше чем первый символ строкиs1
, присвоение строкиs1
текущей цифрыc
. - Для остальных случаев добавление половины количества вхождений текущей цифры
c
вначало и в конец строкиs1
.
- Инициализация переменной
- Если текущий символ
- Если строка
s1
осталась пустой, вывод строкиNO
. - Вывод строки
s1
. Примечание: - Предполагается, что данный код реализует алгоритм поиска и составления максимального числа, состоящего из четных цифр, которое читается одинаково как слева направо, так и справа налево.
- Весь код написан на языке Pascal.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д