Tin học Lập trình xếp diêm

Shinonome Kitaoji

Học sinh
Thành viên
5 Tháng một 2019
44
14
21
17
Đắk Lắk
THCS Nguyễn Khuyến
[TẶNG BẠN] TRỌN BỘ Bí kíp học tốt 08 môn
Chắc suất Đại học top - Giữ chỗ ngay!!

ĐĂNG BÀI NGAY để cùng trao đổi với các thành viên siêu nhiệt tình & dễ thương trên diễn đàn.

Đề:
Bờm là một người rất thích chơi trò chơi xếp diêm. từ các que diêm, Bờm có thể tạo ra các số theo cách xếp
0 1 2 3 4 5 6 7 8 9
Một hôm khi bờm đang ngồi xếp các chữ số thì Cuội đi qua. Cuội đố: ''Tớ cho trước cậu N que diê, Cậu hãy xếp thành 1 số tự nhiên nhỏ nhất, một số tự nhiên lớn nhất từ N que diêm đó được không ? ''. Bờm suy nghĩ một lát rồi cũng nghĩ ra cách xếp. Hãy lập trình để giải bài toán này nhé.
Yêu cầu: Cho trước N (1<n<501) que diêm, hãy xếp N que diêm đó thành một số tự nhiên nhỏ nhất, một số tự nhiên lớn nhất có thể (Lưu ý: mọt số 0 đứng trước các số tự nhiên đều không có nghĩa)
Dữ liệu vào:
+ Dòng 1: Ghi duy nhất một số tự nhiên n.
Dữ liệu ra:
+ Dòng 1:Ghi số tự nhiên nhỏ nhất xếp được.
+ Dòng 2:Ghi số tự nhiên lớn nhất xếp được
Ví dụ
DIEM.INP: 18
DIEM.OUT: 208
111111111
Bài này khó quá mong mn giúp
cảm mơm
(Phòng GD-ĐT LẬP THẠCH)
 

Shinonome Kitaoji

Học sinh
Thành viên
5 Tháng một 2019
44
14
21
17
Đắk Lắk
THCS Nguyễn Khuyến
gửi code tham khảo cho các bạn chưa biết
Uses crt;
var k,j,n,t:longint; p,q:qword;a:array [0..100] of longint; kt:boolean;
f1,f2:Text;
Function tong(x:longint):longint;
var i,k:longint; chuyen:array [1..2000] of longint;
begin
i:=0;
tong:=0;
a[0]:=6;a[1]:=2;a[2]:=5;a[3]:=5;a[4]:=4;a[5]:=5;a[6]:=6;a[7]:=4;a[8]:=7;a[9]:=6;
While x <>0 do
begin
inc(i);
chuyen:=x mod 10;
x:=x div 10;
end;
For k:=1 to i do
begin
tong:=tong+a[chuyen[k]];
end;
end;
begin
assign(f1,'DIEM.INP');reset(f1);
assign(f2,'DIEM.OUT');rewrite(f2);
readln(f1,n);
a[0]:=6;a[1]:=2;a[2]:=5;a[3]:=5;a[4]:=4;a[5]:=5;a[6]:=6;a[7]:=4;a[8]:=7;a[9]:=6;
t:=n div 7; p:=1;q:=1;
k:=n mod 7;
For j:=1 to t do
begin
p:=p*10;
q:=q*10;
end;
q:=q*10;
q:=q-1;
j:=p; kt:=true;
While j<=q do
if kt=true then
begin
If tong(j)=n then
begin
kt:=false;
k:=j; break;
end;
inc(j);
end;
Write(f2,k);
close(F1);
close(f2);
end.
 
Top Bottom