Предмет: Информатика,
автор: julichitai
Составить программу в Паскале.
Вам дано три числа a, b и c. Вы должны в таком порядке приписать эти числа друг к другу, чтобы в результате получилось минимальное число. Например, если a=12, b=5, c=3, приписыванием можно получить числа 1253, 1235, 3125, 3512, 5123, 5312. Минимальным среди этих чисел является 1235.
Ответы
Автор ответа:
0
var a, b, c, p1, p2, p3, p4, p5, p6 :longint;
s1, s2, s3, s4, s5, s6, a1, b1, c1 :string;
begin
read (a);
read (b);
read (c);
str(a,a1);
str(b,b1);
str(c,c1);
s1:=a1+b1+c1;
s2:=a1+c1+b1;
s3:=b1+a1+c1;
s4:=b1+c1+a1;
s5:=c1+a1+b1;
s6:=c1+b1+a1;
val(s1,p1,a);
val(s2,p2,a);
val(s3,p3,a);
val(s4,p4,a);
val(s5,p5,a);
val(s6,p6,a);
a:=p1;
if p2<a then a:=p2;
if p3<a then a:=p3;
if p4<a then a:=p4;
if p5<a then a:=p5;
if p6<a then a:=p6;
writeln(a);
end.
P.S. Грубо говоря мы собираем все возможные варианты, потом находим наименьшее и выводим его.
P.S.S. val(a, b, c) это процедура преобразования строки а в числовое значение b, а c проверка, преобразовалась ли она правильно.
И str(a, b) процедура перевода числового значения a, в строку b;
s1, s2, s3, s4, s5, s6, a1, b1, c1 :string;
begin
read (a);
read (b);
read (c);
str(a,a1);
str(b,b1);
str(c,c1);
s1:=a1+b1+c1;
s2:=a1+c1+b1;
s3:=b1+a1+c1;
s4:=b1+c1+a1;
s5:=c1+a1+b1;
s6:=c1+b1+a1;
val(s1,p1,a);
val(s2,p2,a);
val(s3,p3,a);
val(s4,p4,a);
val(s5,p5,a);
val(s6,p6,a);
a:=p1;
if p2<a then a:=p2;
if p3<a then a:=p3;
if p4<a then a:=p4;
if p5<a then a:=p5;
if p6<a then a:=p6;
writeln(a);
end.
P.S. Грубо говоря мы собираем все возможные варианты, потом находим наименьшее и выводим его.
P.S.S. val(a, b, c) это процедура преобразования строки а в числовое значение b, а c проверка, преобразовалась ли она правильно.
И str(a, b) процедура перевода числового значения a, в строку b;
Автор ответа:
0
спасибо огромное:)
Похожие вопросы
Предмет: Қазақ тiлi,
автор: Ola789
Предмет: Математика,
автор: KireevEmir
Предмет: Химия,
автор: xitole4756
Предмет: Математика,
автор: Аноним