type z=array of byte;
var i,a,b,s: integer;
digits: z;
f: text;
begin
assign(f,'input.txt');
reset(f);
read(f,a);
read(f,b);
close(f);
s:=a+b;
i:=0;
while(s>0) do
begin
setlength(digits,i+1);
digits[i]:=s mod 10;
s:=s div 10;
i:=i+1;
end;
for i:=0 to length(digits)-2 do
for b:=0 to length(digits)-i-2 do
if (digits[b] > digits[b+1]) then
begin
a:= digits[b];
digits[b] := digits[b+1];
digits[b+1] := a;
end;
if(digits[0]=0) then for i:=0 to length(digits)-1 do
if(digits[i]<>0) then
begin
digits[0]:=digits[i];
digits[i]:=0;
break;
end;
assign(f,'output.txt');
rewrite(f);
for i:=0 to length(digits)-1 do write(f,digits[i]);
close(f);
end.
Поделитесь своими знаниями, ответьте на вопрос:
Ви использованы разные алгоритмы вычисления тождественных выражений. почему алгоритм из более рациональный? кто-нибудь понял условие? что значит рациональный алгоритм? почему последний алгоритм должен быть более рациональным? может я в последнем неправильно составил алгоритм?
Алгоритм считается более рациональным, потому что он использует вычисление значения полинома по схеме Горнера, позволяющей минимизировать число умножений и отказаться от операции возведения в степень. Во многих языках программирования операция возведения в степень отсутствует и ее реализуют либо отдельным алгоритмом, либо через основное логарифмическое тождество