Lập trình đơn giản

vaild

Hãy viết chương trình sau:

Nhập vào N chữ số ai, ghép các số vào nhau để tạo ra số lớn nhất

Test 1:

ghepso.inp ghepso.out

5

1 2 6 9 4

96421

Test 2:

ghepso.inp ghepso.out

5

123 789 561 7 19

778956119123

Thuật toán của mình: đối với số có một chữ số thì sort bình thường còn trong mảng mà có nhiều chữ số có các số chữ số khác nhau thì mình sẽ xác định số nào có chữ số lớn nhất rồi thêm các số vào chữ số nhỏ hơn, hiểu nôm na thì nó như thế này: trong test thứ 2, nhiều số chữ số nhất là 3 và mình sẽ đổi từ 7 thành 777(7) và 19 thành 191(19) rồi mình sắp xếp và in ra thôi. Thuật toán này khi làm ra khá dài và mình muốn tìm hiểu một thuật toán ngắn hơn, nhanh hơn. Mong các bạn giúp đỡ

Minh Lệ
7 tháng 1 2020 lúc 12:41

Bộ test số 2 số 7 ở sau số 789 sẽ tạo ra số lớn hơn nó nhưng sao lại để số 7 ở đầu tiên nhỉ. (789756119123)

Bình luận (0)
 Khách vãng lai đã xóa
NguyễnĐìnhNhậtTân
7 tháng 1 2020 lúc 12:46

sắp xếp lại mảng rồi in ra màn hình a[1]a[2]a[3]a[n] làdc

Bình luận (0)
 Khách vãng lai đã xóa
Nguyễn Lê Phước Thịnh
8 tháng 1 2020 lúc 13:38

const fi='ghepso.inp';
fo='ghepso.out';
var f1,f2:text;
a:array[1..100]of integer;
n,i,tam,j:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{--------------------------xu-ly------------------------}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
for i:=1 to n do
write(f2,a[i]);
close(f1);
close(f2);
end.

Bình luận (0)
 Khách vãng lai đã xóa
Nguyễn Huy Hoàng Sơn
12 tháng 2 2020 lúc 21:37

const fi='ghepso.inp';
fo='ghepso.out';
var f1,f2:text;
a:array[1..100]of integer;
n,i,tam,j:integer;
begin
assign(f1,fi); reset(f1);
assign(f2,fo); rewrite(f2);
readln(f1,n);
for i:=1 to n do
read(f1,a[i]);
{--------------------------xu-ly------------------------}
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
for i:=1 to n do
write(f2,a[i]);
close(f1);
close(f2);
end.

Bình luận (0)
 Khách vãng lai đã xóa

Các câu hỏi tương tự
Phan Đức Duy
Xem chi tiết
TLVHieu
Xem chi tiết
Nguyễn Linh
Xem chi tiết
Yến Phạm
Xem chi tiết
Nguyễn Ngọc
Xem chi tiết
Ngô Thị Tân
Xem chi tiết
Quỳnh Chi Nguyễn
Xem chi tiết
ytkc
Xem chi tiết
Thiện
Xem chi tiết