Работы учащихся Решение сложных задач по программированию | Página 8

© Иванов Дмитрий, МБОУ «Лицей № 2», г. Нижневартовск Задача № 7 На вход программе подается последовательность символов, заканчивающаяся нулем. Ноль в этой последовательности единственный, среди символов обязательно есть другие десятичные цифры. Требуется написать программу, которая составляет из этих цифр число-палиндром максимальной длины (которое читается одинаково слева направо и справа налево). Если таких чисел несколько, нужно вывести минимальное из них. Нулей в числе быть не должно (ноль – признак окончания ввода). Все имеющиеся цифры использовать не обязательно, но количество цифр в ответе должно быть максимально возможным. Например, если исходная последовательность была такая: for i:=99921 downto 20 то результат должен быть следующий: 29192 Решение: {Ivanov D 26} program chislovoipalindrom; var a:array[1..9] of integer; i,er,x:integer; s:string; ch,nul:longint; begin readln(s); for i:=1 to 9 do a[i]:=0; i:=1; while s[i]<>'0' do begin val(s[i],x,er); if er=0 then a[x]:=a[x]+1; i:=i+1; end; x:=0; ch:=0; for i:=1 to 9 do if (a[i] mod 2 = 1)or(a[i]=1) then x:=i; for i:=1 to 9 do for er:=1 to (a[i] div 2) do write(i); write(x); for i:=9 downto 1 do for er:=1 to a[i] div 2 do write(i); end. май, 2015 г.