Другие языки программирования и технологии

Требуется написать программу, которая из цифр двух натуральных чисел создает наименьшее возможное число, сохраняя при эт

Требуется написать программу, которая из цифр двух натуральных чисел создает наименьшее возможное число, сохраняя при этом порядок следования цифр в этих числах.
Вопрос не полный:
каким способом должно быть создано новое число?
− можно взять самую маленькую цифру из этих чисел;
− можно к меньшему справа приписать большее;
− можно ещё кучу вариантов придумать…
Как нужно по заданию?

Мой телепат подсказывает, что нужно слить в одно число.
Вот так:
Дано 133 и 20
Результат 12033

function Natur(var S : String) : Boolean;
var B : Boolean; P : Byte;
begin
while S[1] = '0' do Delete(S, 1, 1);
B := True; for P := 1 to Length(S) do B := B and (S[P] in ['0'..'9']);
Natur := B;
end;

var N1, N2, R : String; P1, P2 : Byte;
begin
Write('Введите 1 натуральное чило: '); ReadLn(N1);
if Not Natur(N1) then begin WriteLn('Введённое значение - не натуральное число. '); Halt; end;
Write('Введите 2 натуральное чило: '); ReadLn(N2);
if Not Natur(N2) then begin WriteLn('Введённое значение - не натуральное число. '); Halt; end;
if Length(N1) = 0 then R := N2
else if Length(N2) = 0 then R := N1
else begin
R := ''; P1 := 1; P2 := 1;
repeat
if N1[P1] < N2[P2] then begin R := R + N1[P1]; Inc(P1); end
else begin R := R + N2[P2]; Inc(P2); end;
until (P1 > Length(N1)) Or (P2 > Length(N2));
while P1 <= Length(N1) do begin R := R + N1[P1]; Inc(P1); end;
while P2 <= Length(N2) do begin R := R + N2[P1]; Inc(P2); end;
end;
WriteLn('Получено число: ', R);
end.
Александр Сорочкин
Александр Сорочкин
71 506
Лучший ответ
кому требуется? Неужели мне? Кто требует?
пиши в агент или icq 452371863
Сергей Блюм
Сергей Блюм
68 014
сравниваем "количество" символов, выбираем минимум... ну и так до конца последовательности (сохраняя разрядность).
на чем нужна програмулина
500р и я сделаю :)

Похожие вопросы