Программа должна определить есть ли в этом наборе символы соответствующие десятичным цифрам. Если такие символы есть то можно ли переставить их так чтобы полученное число было симметричным. Ведущих нулей в числе не должно быть исключение — число 0, запись которого всего один ноль.Если требуемое число нельзя составить то программа должна вывести слово NO. А если можно то в первой строке Yes а во второй это число — Pascal(Паскаль)

Например:
Do not 911 to 09 do.
должна вывести
YES
91019
uses crt;
var i, k, ch: char;
num: array['0'..'9']of integer;
s: string;
n, j: integer;
 
begin
    clrscr;
    write('Введите символы, точка - конец ввода: ');
    for i := '0' to '9' do num[i] := 0;
    repeat
        read(ch);
        if (ch >= '0') and (ch <= '9') then inc(num[ch]);
    until ch = '.';
    readln;
    n := 0;
    k := ' ';
    for i := '0' to '9' do if num[i] mod 2 = 1 then
    begin
        inc(n);
        k := i;
    end;
    if (n > 1) then writeln('NO') else
    begin
        s := '';
        if n = 1 then s := k;
        for i := '0' to '9' do
        for j := 1 to num[i] div 2 do s := i + s + i;
        if (s <> '0') and (s[1] = '0') or (s = '') then writeln('NO') else
        begin
            writeln('YES');
            writeln(s);
        end;
    end;
    readln;
end.

Leave a Comment

− 2 = 2