• Помогите  пожалуйста... хотя бы составить программу.


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

    Формат входных данных:
    Входной
    файл input.txt содержит два натуральных числа N (10 <= N <=
    10^100) и M (10 <= M <= 10^100), разделенных одним пробелом.

    Формат выходных данных:
    Выходной файл output.txt должен содержать найденное наименьшее число.

Ответы 7

  • И чего? Там надо не просто сравнить две строчки, а составлять числа из цифр...
  • Сейчас напишу
    • Автор:

      kira97
    • 5 лет назад
    • 0
  • Всё.
  • Дурочку валяете? Дайте во входном файле вот это и посмотрите, что получится: 32106696353200405754325400021279038040923804320пробел 435820803056819883221793453123514203340299607763
    • Автор:

      briley
    • 5 лет назад
    • 0
  • Сейчас еще поиграетесь, 2 часа пройдет с момента помещения ответа и вообще не исправите.
  • var x, y, j, i,b,a:longint;g, f: text;beginassign (g, 'input.txt');assign (f, 'output.txt');reset (g);read (g, x, y);close (g);rewrite(f);while x>=0 do beginb:=(x mod 100) div 10;if b=0 then break;a:=x mod 10;if a>b then a:=b;x:=x div 10;end;while y>=0 do beginj:=(y mod 100) div 10;if j=0 then break;i:=y mod 10;if i>j then i:=j;y:=y div 10;end;if a<i then write(f, a);if a>i then write(f, i);close (f);end.
  • 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  endend;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, ns: integer;  s, M, N: string;  ml, nl: integer;  f: text;begin  Assign(f,'input.txt');  Reset(f);  Readln(f,s);  Close(f);  Assign(f,'output.txt');  Rewrite(f);  ns := Length(s);  p := Pos(' ', s);  ml := p - 1;  M := Copy(s, 1, ml);  ShellStr(M);  TrimNullsLeft(M);  ml := Length(M);  N := Copy(s, p + 1, ns - p);  ShellStr(N);  TrimNullsLeft(N);  nl := Length(N);  if ml < nl then Writeln(f,M)  else if nl < ml then Writeln(f,N)  else if M < N then Writeln(f,M) else Writeln(f,N);  Close(f);  Writeln('Программа завершила работу')end.
  • Добавить свой ответ

Войти через Google

или

Забыли пароль?

У меня нет аккаунта, я хочу Зарегистрироваться

How much to ban the user?
1 hour 1 day 100 years