

Hãy luôn nhớ cảm ơn và vote 5*
nếu câu trả lời hữu ích nhé!
đệ quy:
uses crt;
var n,i:longint;
max:real;
f,a:array[1..1000000] of longint;
b:array[1..1000000] of boolean;
function len(n:longint):longint;
var d:longint;
begin
d:=1;
while n<>0 do
begin
d:=d*10;
n:=n div 10;
end;
exit(d);
end;
procedure xuat;
var i:integer;
s:real;
begin
s:=0;
for i:=1 to n do
s:=s*len(f[i])+f[i];
if max<s then max:=s;
end;
procedure try(j:integer);
var i:integer;
begin
for i:=1 to n do
if b[i]=true then
begin
f[j]:=a[i];
if j=n then xuat
else
begin
b[i]:=false;
try(j+1);
b[i]:=true;
end;
end;
end;
begin
assign(input,'KETNOI.inp');
reset(input);
assign(output,'KETNOI.out');
rewrite(output);
readln(n);
max:=-maxint;
fillchar(b,sizeof(b),true);
for i:=1 to n do
read(a[i]);
try(1);
write(max:0:0);
readln
end.
nâu đệ quy:
uses crt;
var n,i,j:longint;
t:string;
a:array[1..1000000] of string;
begin
assign(output,'KETNOI.inp');
reset(input);
assign(output,'KETNOI.out');
rewrite(output);
readln(n);
for i:=1 to n do
read(a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
end;
for i:=1 to n do
write(a[i]);
readln
end.
Hãy giúp mọi người biết câu trả lời này thế nào?
![]()
Bảng tin
878
16288
459
Ý tưởng đc ko
1428
25173
482
Cái ko đệ quy thì dùng xâu nên chắc bà hiểu nhệ quy tắc so sánh xâu ấy Còn cái đệ quy thì ... sao nhể sắp xếp các phần tử của mảng rồi tìm cách sắp xếp có giá trị lớn nhất thoi
878
16288
459
òoo