Составить из имеющихся четных цифр максимальное число, читающееся одинаково слева направо и наоборот - 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.

Объяснение кода листинга программы

  1. Объявление переменных:
    • s и s1 - строки
    • c - символ
    • i, k, и j - байты
  2. Чтение входной строки s.
  3. Инициализация пустой строки s1.
  4. Цикл по символам от '0' до '9', выбор каждой четной цифры.
    • Если текущий символ c является четной цифрой:
      • Инициализация переменной k равной 0.
      • Цикл по индексам исходной строки s, подсчет количества вхождений текущей цифры c и вывод результата.
      • Если количество вхождений k больше 0:
      • Если строка s1 пустая, добавление k копий текущей цифры c в строку s1.
      • Если длина строки s1 равна 1 и k равно 1, и текущая цифра c больше чем первый символ строки s1, присвоение строки s1 текущей цифры c.
      • Для остальных случаев добавление половины количества вхождений текущей цифры c вначало и в конец строки s1.
  5. Если строка s1 осталась пустой, вывод строки NO.
  6. Вывод строки s1. Примечание:
  7. Предполагается, что данный код реализует алгоритм поиска и составления максимального числа, состоящего из четных цифр, которое читается одинаково как слева направо, так и справа налево.
  8. Весь код написан на языке Pascal.

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

9   голосов , оценка 3.667 из 5
Похожие ответы