Дано два натуральных числа N и M. Написать программу для определения наименьшего из чисел, составленных из цифр данных чисел. Незначащих нулей в найденном числе быть не должно. Формат входных данных: Входной файл INPUT.TXT соде...

Дано два натуральных числа N и M. Написать программу для определения наименьшего из чисел, составленных из цифр данных чисел. Незначащих нулей в найденном числе быть не должно. Формат входных данных: Входной файл INPUT.TXT содержит два натуральных числа N (10N10100) и M (10M10100), разделенных одним пробелом. Формат выходных данных: Выходной файл OUTPUT.TXT должен содержать найденное наименьшее число.
Гость
Ответ(ы) на вопрос:
Гость
procedure ShellStr(var s: string); { сортирует символы строки методом Шелла } var   i, j, n, step: integer;   c: char; begin   s := Trim(s);   n := Length(s);   step := n div 2;   while step > 0 do    begin     for j := n - step downto 1 do      begin       i := j;       while i <= n - step do        begin         if s[i] > s[i + step] then         begin           c := s[i];           s[i] := s[i + 1];           s[i + 1] := c         end;         i := i + step       end     end;     step := step div 2   end end; procedure TrimNullsLeft(var s: string); { Усекает левые (незначащие нули) в строке s } var   i, n: integer; begin   i := 1; n := Length(s);   while (s[i] = '0') do i := i + 1;   s := Copy(s, i, n - i + 1) end; var   p: integer;   s, M, N: string;   f: text; begin   Assign(f, 'input.txt');   Reset(f);   Readln(f, s);   Close(f);   Assign(f, 'output.txt');   Rewrite(f);   s := Trim(s);   p := Pos(' ', s);   M := Copy(s, 1, p - 1);   N := Copy(s, p + 1, Length(s) - p);   s := M + N;   ShellStr(s);   TrimNullsLeft(s);   Writeln(f, s);   Close(f);   Writeln('Программа завершила работу') end.
Не нашли ответ?
Ответить на вопрос
Похожие вопросы