Tin học Tây Sơn

Ghép số lớn nhất

Go down

Ghép số lớn nhất

Bài gửi by Admin on Thu Nov 15, 2018 4:16 pm

Cho n số nguyên dương a1, a2…,an (1<n<=100), mỗi số không vượt quá 10^9. Từ các số này người ta tạo ra một số nuyên mới bằng cách ghép tất cả các số đã cho, tức là viết liên tiếp các số đã cho với nhau. Vd, với n=4 và các số  123, 124, 56, 90 ta có thể tạo ra các ố mới như: 1231245690, 1241235690,…. Với n=4 ta có thể tạo ra 24 số mới. Trong trường hợp này số lớn nhất tạo ra là 9056124123.
Yêu cầu: cho n và các số a1, a2,…an. Hãy xác định số lớn nhất có thể tạo ra khi ghép các số đã cho thành một số mới.
Soghep.inp:
-         dòng thứ nhất: chứa số nguyên n;
-         dòng thứ hai chứa n số nguyên a1.a2,…

soghep.out: gồm 1 dòng chứa số lớn nhất có thể tạo được


SOGHEP.INP
SOGHEP.OUT
4
123  124  56  90
9056124123
avatar
Admin
Admin
Admin

Posts : 658
Reputation : -39
Join date : 16/11/2015
Age : 29

Xem lý lịch thành viên http://tinhocts.forumvi.com

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by nguyen77 on Sat Nov 17, 2018 12:50 am

Code:
program bt;
uses crt;
var i,n,j,tg,kg:longint;
a:array[1..100] of longint;
fi,fo:text;

//-------------------------

function max(x:longint):longint;
begin
max:=0;
while x>0 do
        begin
                max:=x mod 10;
                x:=x div 10;
        end;
end;

//----------------------------

begin
clrscr;
assign(fi,'soghep.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
        read(fi,a[i]);
close(fi);
assign(fo,'soghep.out');
rewrite(fo);
for i:=1 to n-1 do
        for j:=i+1 to n do
                if a[i]<a[j] then
                        begin
                        tg:=a[i];
                        a[i]:=a[j];
                        a[j]:=tg;
                        end;
for i:=1 to n-1 do
for j:=i+1 to n do
        if max(a[i])<max(a[j]) then
                begin
                kg:=a[i];
                a[i]:=a[j];
                a[j]:=kg;
                end;
for i:=1 to n do
        write(fo,a[i]);
close(fo);

readln;
end.
avatar
nguyen77
Năng động
Năng động

Posts : 68
Reputation : -22
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by Nguyễn Ngọc Thiên on Sat Nov 17, 2018 11:45 am

Code:
program ghepso;
uses crt;
var i,n,j,tg,kg:longint;
a:array[1..100] of longint;
fi,fo:text;

function lonnhat(x:longint):longint;
begin
lonnhat:=0;
while x>0 do
        begin
                lonnhat:=x mod 10;
                x:=x div 10;
        end;
end;

begin
clrscr;
assign(fi,'soghep.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
        read(fi,a[i]);
close(fi);
assign(fo,'soghep.out');
rewrite(fo);
for i:=1 to n-1 do
        for j:=i+1 to n do
                if a[i]<a[j] then
                        begin
                        tg:=a[i];
                        a[i]:=a[j];
                        a[j]:=tg;
                        end;
for i:=1 to n-1 do
for j:=i+1 to n do
        if lonnhat(a[i])<lonnhat(a[j]) then
                begin
                kg:=a[i];
                a[i]:=a[j];
                a[j]:=kg;
                end;
for i:=1 to n do
        write(fo,a[i]);
close(fo);
readln;
end.
avatar
Nguyễn Ngọc Thiên
Teen Chính hiệu
Teen Chính hiệu

Posts : 17
Reputation : -4
Join date : 06/11/2018
Age : 13
Location : Bình tường, Tây Sơn, Bình Định

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by Cao Hải Dương on Sat Nov 17, 2018 12:30 pm

CODE:
Program ghep;
Uses crt;
Var fi,fo:text; n,i:longword;
a:array[1..100] of longint;

Function max(x:longint):longint;
Begin
max:=0;
While x<>0 do
Begin
max:=x mod 10;
x:=x div 10;
End;
End;

Procedure sx;
Var i,j,tg:integer;
Begin
For i:=1 to n-1 do
For j:=i+1 to n do
If a[i] > a[j] then
Begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
End;
End;

Procedure sxmax;
Var i,j,tg:longint;
Begin
For i:=1 to n-1 do
For j:=i+1 to n do
If max(a[i])<max(a[j]) then
Begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
End;
End;

Begin
Clrscr;
Assign(fi,'SOGHEP.INP');Reset(fi);
Readln(fi,n);
For i:=1 to n do Read(fi,a[i]);
Close(fi);
Assign(fo,'SOGHEP.OUT');Rewrite(fo);
sx;
sxmax;
For i:=1 to n do write(fo,a[i]);
Close(fo);
Readln;
End.
avatar
Cao Hải Dương
Năng động
Năng động

Posts : 56
Reputation : -1
Join date : 18/06/2018
Age : 14
Location : Bình Định

Xem lý lịch thành viên http://starduongdesign.blogspot.com

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by Nguyễn Văn Biên on Sat Nov 17, 2018 12:48 pm

CODE:
program SOGHEP;
var fi,fo:text;
i,n,j,x:longint;
A:array[1..100] of longint;

function max(x:longint):longint;
begin
max:=0;
while x>0 do
begin max:=x mod 10; x:=x div 10 end
end;

begin
assign(fi,'SOGHEP.INP'); reset(fi);
readln(fi,n);
for i:=1 to n do reAd(fi,A[i]);
close(fi);
for i:=1 to n-1 do
for j:=i+1 to n do
if A[i]<A[j] then
begin
x:=A[i];
A[i]:=A[j];
A[j]:=x;
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if max(A[i])<max(A[j]) then
begin
x:=A[i];
A[i]:=A[j];
A[j]:=x;
end;
assign(fo,'SOGHEP.OUT');
rewrite(fo);
for i:=1 to n do write(fo,A[i]);
close(fo)
end.
avatar
Nguyễn Văn Biên
S-mod
S-mod

Posts : 186
Reputation : 21
Join date : 18/06/2018
Age : 14
Location : ?

Xem lý lịch thành viên https://bien2004official.blogspot.com

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by tonguyengiahan237 on Sat Nov 17, 2018 1:23 pm

Code:
Program So_ghep;
Uses crt;
Type MangSG=array[1..100]of integer;
Var A:MangSG;
    n:integer;
    fi,fo:text;

Procedure Docdl(Var A:MangSG;Var n:integer;Var fi:text);
Var i:integer;
Begin
 Assign(fi,'SOGHEP.INP');
 Reset(fi);
 Readln(fi,n);
 For i:=1 to n do
 Read(fi,a[i]);
 Close(fi);
 End;

Function LN(n:longint):longint;
Begin
LN:=0;
While n<>0 do
Begin
LN:=n mod 10;
n:=n div 10;
End;
End;

Procedure Sap_xep(Var A:MangSG;Var n:integer);
Var i,j,t:integer;
Begin
 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;
End;

Procedure Ghep_so_Max(Var A:MangSG;Var n:integer);
Var i,j,t:integer;
Begin
For i:=1 to n-1 do
For j:=i+1 to n do
If LN(a[i]) < LN(a[j]) then
Begin
t:=a[i];
a[i]:=a[j];
a[j]:=t;
End;
End;

Procedure Vietdl(Var A:MangSG;Var n:integer;Var fo:text);
Var i:integer;
Begin
 Assign(fo,'SOGHEP.OUT');
 Rewrite(fo);
 sap_xep(A,n);
 Ghep_so_max(A,n);
 For i:=1 to n do
 Write(fo,a[i]);
Close(fo);
End;

BEGIN
Clrscr;
Docdl(A,n,fi);
Vietdl(A,n,fo);
Readln;
END.
avatar
tonguyengiahan237
Teen Chính hiệu
Teen Chính hiệu

Posts : 28
Reputation : -2
Join date : 06/11/2018
Age : 14
Location : TT Phú Phong Huyện Tây Sơn Tỉnh Bình Định

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by quantran on Sat Nov 17, 2018 1:52 pm

code cua em:

program ghepso;
uses crt;
var fi,fo:text;
st,tam:string;
n,i,j:integer;
a:array[1..100] of string;
b:array[1..100] of integer;
begin
clrscr;
assign(fi,'ghepso.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
read(fi,b[i]);
close(fi);
assign(fo,'ghepso.out');
rewrite(fo);
for i:=1 to n do str(b[i],a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if concat(a[i],a[i+1])<concat(a[j],a[j+1]) then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
for i:=1 to n do
write(fo,a[i]);
close(fo);
readln;
end.


Được sửa bởi quantran ngày Sat Nov 17, 2018 2:07 pm; sửa lần 1.
avatar
quantran
Teen cá tính
Teen cá tính

Posts : 73
Reputation : -20
Join date : 18/06/2018
Age : 14
Location : Binh Thuan-Tay Son-Binh Dinh

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by mainhatthong2004 on Sat Nov 17, 2018 1:53 pm

thong:
program bai5;
uses crt;
var i,n,j,tg,kg:longint;
a:array[1..100] of longint;
fi,fo:text;

//-------------------------

function max(x:longint):longint;
begin
max:=0;
while x>0 do
begin
max:=x mod 10;
x:=x div 10;
end;
end;

//----------------------------

begin
clrscr;
assign(fi,'soghep.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
read(fi,a[i]);
close(fi);
assign(fo,'soghep.out');
rewrite(fo);
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i]<a[j] then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
for i:=1 to n-1 do
for j:=i+1 to n do
if max(a[i])<max(a[j]) then
begin
kg:=a[i];
a[i]:=a[j];
a[j]:=kg;
end;
for i:=1 to n do
write(fo,a[i]);
close(fo);

readln;
end.
avatar
mainhatthong2004
Teen cá tính
Teen cá tính

Posts : 76
Reputation : -25
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by Tạ Thúy Phượng on Sat Nov 17, 2018 3:26 pm

code:
program ghepso;
uses crt;
var fi,fo:text;
st,tam:string;
n,i,j:integer;
a:array[1..100] of string;
b:array[1..100] of integer;
begin
clrscr;
assign(fi,'GHEPSO.INP');
reset(fi);
readln(fi,n);
for i:=1 to n do
read(fi,b[i]);
close(fi);
assign(fo,'GHEPSO.OUT');
rewrite(fo);
for i:=1 to n do str(b[i],a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if concat(a[i],a[j])<concat(a[j],a[i]) then
begin
tam:=a[i];
a[i]:=a[j];
a[j]:=tam;
end;
for i:=1 to n do
write(fo,a[i]);
close(fo);
readln
end.


Được sửa bởi Tạ Thúy Phượng ngày Sat Nov 17, 2018 4:06 pm; sửa lần 1.
avatar
Tạ Thúy Phượng
Năng động
Năng động

Posts : 63
Reputation : -19
Join date : 18/06/2018
Location : Binh Thuan-Tay Son-Binh Dinh

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by Khách viếng thăm on Sat Nov 17, 2018 3:53 pm

code:
program ghepso;

uses crt;
var fi,fo:text;
a:array[1..100]of integer;
b:array[1..100]of string;
i,n,j:integer;
tg:string;

procedure nhap;
begin
assign(fi,'soghep.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do read(fi,a[i]);
close(fi);
end;

procedure sx;
begin
assign(fo,'soghep.out');
rewrite(fo);
for i:=1 to n do str(a[i],b[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if concat(b[i],b[i+1])<concat(b[j],b[j+1]) then
begin
tg:=b[i];
b[i]:=b[j];
b[j]:=tg;
end;
for i:=1 to n do
write(fo,b[i]);
close(fo);
end;

BEGIN
clrscr;
nhap;
sx;
readln;
END.


Khách viếng thăm
Khách viếng thăm


Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by nguyen77 on Sat Nov 17, 2018 3:54 pm

Code:
program ghepso;
uses crt;
var fi,fo:text;
st,tg:string;
n,i,j:integer;
a:array[1..100] of string;
b:array[1..100] of integer;
begin
clrscr;
assign(fi,'soghep.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do
read(fi,b[i]);
close(fi);
assign(fo,'soghep.out');
rewrite(fo);
for i:=1 to n do str(b[i],a[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if concat(a[i],a[i+1])<concat(a[j],a[j+1]) then
begin
tg:=a[i];
a[i]:=a[j];
a[j]:=tg;
end;
for i:=1 to n do
write(fo,a[i]);
close(fo);
readln
end.
avatar
nguyen77
Năng động
Năng động

Posts : 68
Reputation : -22
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by huynhtanluc on Sat Nov 17, 2018 4:35 pm

Code:
program ghepso;
uses crt;
type mang=array[1..100] of integer;
var a:array[1..100] of string;t1,t2:text;tg:string;
    n,i,j:integer;a:mang;

        Procedure doc;
        begin
        assign(t1,'ghepso.inp');
        reset(t1);
        readln(t1,n);
        for i:=1 to n do
        read(t1,a[i]);
        close(t1);
        end;

        Procedure inra;
        begin
        assign(t2,'ghepso.out');
        rewrite(t2);
        for i:=1 to n do str(a[i],b[i]);
        for i:=1 to n-1 do
        for j:=i+1 to n do
        if concat(b[i],b[j])<concat(b[j],b[i]) then
        begin
        tg:=b[i];
        b[i]:=b[j];
        b[j]:=tg;
        end;
        for i:=1 to n do
        write(t2,b[i]);
        close(t2);
        end;

Begin
        clrscr;
        doc;
        inra;
        readln;
End.
avatar
huynhtanluc
Năng động
Năng động

Posts : 61
Reputation : -14
Join date : 18/06/2018

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by nganvonhat123 on Thu Dec 06, 2018 3:14 pm

Code:
program ghepso;

uses crt;
var fi,fo:text;
a:array[1..100]of integer;
b:array[1..100]of string;
i,n,j:integer;
tg:string;

procedure nhap;
begin
assign(fi,'soghep.inp');
reset(fi);
readln(fi,n);
for i:=1 to n do read(fi,a[i]);
close(fi);
end;

procedure sx;
begin
assign(fo,'soghep.out');
rewrite(fo);
for i:=1 to n do str(a[i],b[i]);
for i:=1 to n-1 do
for j:=i+1 to n do
if concat(b[i],b[i+1])<concat(b[j],b[j+1]) then
begin
tg:=b[i];
b[i]:=b[j];
b[j]:=tg;
end;
for i:=1 to n do
write(fo,b[i]);
close(fo);
end;

BEGIN
clrscr;
nhap;
sx;
readln;
END.
avatar
nganvonhat123
Begin
Begin

Posts : 9
Reputation : -2
Join date : 24/11/2018
Age : 14

Xem lý lịch thành viên

Về Đầu Trang Go down

Re: Ghép số lớn nhất

Bài gửi by Sponsored content


Sponsored content


Về Đầu Trang Go down

Về Đầu Trang


 
Permissions in this forum:
Bạn không có quyền trả lời bài viết