Giới thiệu Trong tài liệu này tuyển chọn một số bài toán tin cơ bản ở nhiều nguồn khác nhau. Nó thường xuất hiện trong các kỳ thi học sinh giỏi các cấp. Các bài tập trong tài liệu này tương đối đơn giản. Không sử dụng bất kỳ một thuật toán đặc biệt (đệ quy quay lui, quy hoạch động, tham lam ...) nào, mỗi bài có thể có nhiều cách giải khác nhau. Nhằm mục đích ôn lại các loại cấu trúc dữ liệu đơn giản và mối tương quan giữa các cấu trúc này. Nhằm hình thành tư duy lập trình bước đầu cho bạn đọc. Để có thể tham khảo tốt nhất về tài liệu này các bạn cần đọc thêm kiến thức về chương trình con, nhập xuất dữ liệu bằng tệp văn bản. Nếu cảm thấy thú vị các bạn có thể tham khảo thêm một số tài liệu sau: o Tuyển chọn 100 bài tập lập trình cơ bản (code pascal và c++). o Tuyển chọn 50 bài toán đệ quy quay lui vét cạn (code pascal và c++). o Tuyển chọn 50 bài toán quy hoạch động (code pascal và c++). o Tuyển chọn 50 toán đồ thị (code pascal và c++). o Tuyển chọn 20 bài toán về cấu trúc dữ liệu đặc biệt.
Trang 1Để có thể tham khảo tốt nhất về tài liệu này các bạn cần đọc thêm kiến thức về chương trình con, nhập xuất dữ liệu bằng tệp văn bản.
Nếu cảm thấy thú vị các bạn có thể tham khảo thêm một số tài liệu sau:
o Tuyển chọn 100 bài tập lập trình cơ bản (code pascal và c++)
o Tuyển chọn 50 bài toán đệ quy - quay lui - vét cạn (code pascal và c++)
o Tuyển chọn 50 bài toán quy hoạch động (code pascal và c++)
o Tuyển chọn 50 toán đồ thị (code pascal và c++)
Trang 2Cấu trúc cơ bản, If Then Else Bài 1: Chữ số
Viết chương trình cho biết chữ số hàng nghìn, hàng trăm, hàng chục, hàng đơn vị của một số có 4chữ số
Dữ liệu vào: Lưu trong tệp ChuSo.inp một số nguyên dương có 4 chữ số
Dữ liệu ra: Ghi vào tệp ChuSo.out có cấu trúc như ví dụ dưới đây
Ví dụ:
tram: 2 Chu so hang chuc: 3
Trang 3Program HCN;
Var f i , f o : t e x t ;
a , b , C V, D t : l o n g i n t ;
Begin
Trang 4Bài 3: Tam giác
Kiểm tra ba số nguyên có thể tạo thành 3 cạnh của một tam giác hay không? Nếu có thì tính chu vi
và diện tích của tam giác đó
Dữ liệu vào: Lưu trong tệp Tamgiac.inp ba số nguyên dương (<104)
Dữ liệu ra: Ghi vào tệp Tamgiac.out với cấu trúc như sau:
+ Nếu ba số nguyên không tạo thành 3 cạnh của tam giác thì ghi “No”
+ Nếu tạo thành thì ghi ra chu vi và diện tích của tam giác
Trang 5Bài 4: Phương trình bậc hai.
Tìm nghiệm của phương trình bậc hai ax2+bx+c=0 (a^0)
Dữ liệu vào: Lưu trong tệp Ptb2.inp 3 số thực lần lượt là 3 hệ số a,b,c
Dữ liệu ra: Ghi vào tệp Ptb2.out với cấu trúc như sau:
+ Ghi “Ptvn” nếu phương trình vô nghiệm
+ Ghi hai nghiệm x1, x2 (nếu là nghiệm kép thì ghi hai lần)
Trang 9Yêu cầu: Viết
Trang 12;
Trang 13gbd,gkt,thu
Trang 14;t
Trang 15;
Trang 17;readln
Trang 18;re
Trang 19adln(fi,gbd,
Trang 20;
c l o s e
(
Trang 21;tg:
=gkt
Trang 22-;
i f
(thu
>
=
Trang 23<
Trang 24B e g
Trang 25n
if gkt<=14 then
if tg<=3 then
t i e n : = t g * 4 0
0 0 0
else
t i e n : = 3
Trang 26* 4 0 0 0 0+ ( t g -
3 ) * 2 8 0
0 0 ; i f gbd>=14 then
if tg<=3 then
t i e n : = t g * 5 0
0 0 0
else
Trang 27t i e n : = 3
* 5 0 0 0 0+ ( t g -
3 ) * 3 5 0
0 0 ; i f ( g k t > 1
4 ) a n d (gbd<14)then
Trang 28g b d ) * 4 0 0 0 0
+( g k t - 1 4 ) * 5 0 0 0 0 ; i f ( 1 4 - g b d ) > = 3 then
t i e n : = 3 * 4 0 0 0 0 + ( 1 4
-g b d - 3 ) * 2 8 0 0 0
+( g k t - 1 4 ) * 3 5 0 0 0 ;
i f ( 1 4 - g b d ) < 3 then
Begin
Trang 29if (14-gbd)=1 then
t i e n : = 4 0 0 0 0 + 2 * 5 0 0 0 0
+( g k t - 1 4 -
Trang 30( g k t 1 4
-1 ) * 3 5 0 0 0 ;
E n d
;i
f(t
Trang 31=7)or(thu
Trang 32=8)thentie
Trang 33=tg
*60000
;
Trang 34a s s i g n
(fo,'
Trang 35karaoke.out'
Trang 39+ 5 <
Tbm
< 6 5 :xếploại
“Trung
Trang 40+ Tbm
< 5 :xếploại
“Yeu”
Yêu cầu: Cho
Trang 45t e x t ;Tbm:
Trang 51i f ( T b
Trang 52elseif(Tbm
Trang 53=6.5)then
Trang 54='Kh
Trang 55a'elseif(T
Trang 56>
=5)then
Trang 57='Tr
Trang 58ungBinh'els
Trang 59='
Trang 60;
a s s i g n
Trang 61’XepLoai
Trang 62’)
;
r e w r
Trang 63i t e
(fo)
;wri
Trang 64te(fo,Xeploa
Trang 65;
c l o s e
(fo
Trang 67tiền điện tiêu
dùng như sau:
+ 100
Kw đầugiá1000/1kw
Trang 68+ 100
Kw tiếttheo giá2000/1kw+ Các
Kw tiếp
Trang 69theo giá3000/1kw
Trang 72Dữ liệu ra:
Ghi vào tệpTienDien.out
số tiền phải trảtrong tháng
Ví dụ :Ti e n D i e n i n p Ti e n Di e n o u t
Trang 86f i , f o : t e x t ;
a , b, S o
D i e
n , T
i e n:
Trang 93n >
2
0 0 )then
0 0*2
Trang 940
0 0+( S o
l s e
i f (
Trang 960 0+( S o
Trang 98o u
t ' ) ;
rew rite
( f o) ;
Trang 108Dung,Cuong:i
Trang 109;KetQ
Trang 110ua:string
Trang 114d ( f
i , H
u n g, D u
n g,
C u
o n g) ;
clos e( f i
) ;
Trang 115i f(Hung
=Dun
g )a
Trang 116d (Hung
=Cuon
g )
Trang 117t he
n K
e tQu
a :
= 'Ho
a '
Trang 118;
i f(Hung
<
>
Dun
Trang 119g )an
d (Hung
<
>
Cu
Trang 120g )
t he
n K
e tQu
a :
= '
Trang 121g '
;
i f(Dung
<
Trang 122Hun
g )an
d (Dung
Trang 123>
Cuon
g )
t he
n K
e t
Trang 124a :
= 'Dun
g '
;
i f(C
Trang 125<
>
Hun
g )an
Trang 126d (Cuong
<
>
Dun
g )
Trang 127t he
n K
e tQu
a :
= 'Cuo
Trang 128g '
;
as si g n(
f o, ’T
r oC
Trang 129o i o
u t
’ )
;
re w ri te
( f
o )
Trang 130; w
r i
t e( f
o ,K
e tQu
a )
;
Trang 131cl os e(
f o) ;
Trang 132End Cấu trúc lặp Bài 1 Số nguyên tố
Kiểm tra một số có phải là số nguyên tố hay không?
Dữ liệu vào: Lưu trong tệp SoNguyenTo.inp một số nguyên dương duy nhất (<1014)
Dữ liệu ra: Ghi vào tệp SoNguyenTo.out giá trị Yes hoặc No
Bài 2: Đảo ngược số
Viết chương trình đảo ngược một số nguyên dương
Dữ liệu vào: Lưu trong tệp DaoNguocSo.inp một số nguyên dương (<1018)
Trang 133Dữ liệu ra: Ghi vào tệp DaoNguocSo.out số đảo ngược
Bài 3: Đổi tiền
Cho một lượng tiền cần đổi và 3 mệnh giá tiền khác nhau Hãy cho biết có bao nhiêu cách đổi Dữ liệu vào: Lưu trong tệp DoiTien.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số tiền cần đổi (<106)
+ Dòng thứ hai lưu 3 mệnh giá tiền
Dữ liệu ra: Ghi vào tệp DoiTien.out số cách đổi
Trang 134Dữ liệu vào: Lưu trong tệp Taohinh.inp một số nguyên dương cho biết chiều cao của hình (<104).
Dữ liệu ra: Ghi vào tệp TaoHinh.out hình với chiều cao từ input
Trang 135Dữ liệu vào: Lưu trong tệp Taohinh.inp một số nguyên dương cho biết chiều cao của hình (<104) Dữ liệu ra: Ghi vào tệp TaoHinh.out hình với chiều cao từ input.
Bài 6: Ước chung lớn nhất
Tìm ước chung lớn nhất của hai số nguyên dương
Dữ liệu vào: Lưu trong tệp Ucln.inp hai số nguyên dương
Dữ liệu ra: Ghi vào tệp Ucln.out ước chung lớn nhất
UCLN(a,b)={
()BCNN(a,b) = (a*b)/UCLN(a,b) -> Cách tính bội chung nhỏ nhất
Chương trình:
Trang 136Bài 7: Lũy thừa
Cho số tự nhiên n (0 < n < 230), n luôn được phân tích dưới dạng n= 5 m p trong đó p là số nguyên
dương và m là số tự nhiên lớn hơn hoặc bằng 0
Ví dụ: Với số tự nhiên n = 500 thì n= 53.4, tức là m = 3, p = 4
Yêu cầu: Tìm tất cả các cặp giá trị m,p thỏa n=5mp
Dữ liệu vào: Lưu trong tệp LuyThua.inp với một số tự nhiên thể hiện giá trị n
Dữ liệu ra: Ghi vào tệp LuyThua.out mỗi dòng ghi một cặp giá trị m,p theo thứ tự tăng dần của p Ví dụ:
Trang 137Bài 8: Giai thừa
Tính tổng sau: 1+1.2+1.2.3+1.2.3.4+ +1.2.3 (n-l).n Dữ liệu vào: Lưu trong
Trang 138; rewrite( f o ) ; w r i t e ( f o , t o n g ) ;
close( f o );
End
Trang 139Bài 1: Max-Min
Cho dãy số gồm n số nguyên Hãy cho biết độ chênh lệnh giữa phần tử Max và phần tử Min
Dữ liệu vào: Lưu trong tệp MaxMin.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp MaxMin.out độ chênh lệnh giữa phần tử Max và Min
Dữ liệu vào: Lưu trong tệp ChanLe.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp ChanLe.out độ chênh lệnh giữa số lượng chẵn và lẻ.
Trang 140Cho dãy số gồm n số nguyên Hãy cho biết tổng của các số nguyên tố trong dãy.
Dữ liệu vào: Lưu trong tệp TongNguyenTo.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp TongNguyenTo.out tổng của các số nguyên tố
Trang 142Cho dãy số gồm n số nguyên Hãy sắp xếp dãy số theo thứ tự tăng dần.
Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra: Ghi vào tệp SapXep.out dãy đã được sắp tăng
Trang 143Bài 6: Dãy con dương
Cho dãy số gồm n số nguyên Hãy cho biết số lượng các số dương liên tiếp nhiều
nhất Dữ liệu vào: Lưu trong tệp DayconDuong.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp DayConDuong.out số lượng các số dương liên tiếp nhiều
Trang 144assign( f o , ’ D a y C o n Du o n g o u t ’ ) ;
rewrite( f o ); w r i t e ( f o , m a x ) ;
close( f o );
End.
Bài 7: Dãy con chẵn
Cho dãy số gồm n số nguyên Hãy cho biết số lượng các số chẵn liên tiếp nhiều nhất
Dữ liệu vào: Lưu trong tệp DayconChan.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp DayConchan.out có cấu trúc như sau;
+ Dòng thứ nhất ghi số lượng các số chẵn liên tiếp nhiều nhất
+ Dòng thứ 2 ghi dãy con chẵn đó (nếu có nhiều dãy bằng nhau thì chỉ ghi dãy đầu tiên).Ví dụ:
Trang 145Bài 8: Dãy con đổi dấu
Cho dãy số gồm n số nguyên Hãy cho biết dãy số hạng đổi dấu nhiều nhất có bao nhiêu phần
tử Dữ liệu vào: Lưu trong tệp DayDoiDau.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp DayDoiDau.out số lượng phần tử của dãy đổi dấu nhiều nhất.
Dữ liệu vào: Lưu trong tệp TongX.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu hai số nguyên n (n < 107) và X
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Trang 147Bài 1: Max Min
Tìm phần tử đạt giá trị Max, và phần tử đạt giá trị Min trong ma trận các số nguyên có kích thước mxn
Dữ liệu vào: Lưu trong tệp MaxMinX.inp có cấu trúc như sau:
+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)
+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng
trắng Dữ liệu ra: Ghi vào tệp MaxMin.out có cấu trúc như sau:
+ Dòng thứ nhất ghi phần tử đạt giá trị Max và vị trí của nó
+ Dòng thứ hai ghi phần tử đạt giá trị Min và vị trí của nó
+ Nếu có nhiều phần tử đạt giá trị Max hoặc Min thì phần tử Max hoặc Min là phần tử đầu tiên đạt giá trị Max hoặc Min
Trang 148Dữ liệu vào: Lưu trong tệp NguyenTo.inp có cấu trúc như sau:
+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)
+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra: Ghi vào tệp NguyenTo.out số lượng số nguyên tố thỏa điều kiện Ví dụ:
Trang 149Cho mảng A(n x m) các số nguyên Phần tử Ai,j với ( 1 ( 1 < i < n , 1 < j < m ) được
gọi là phần tử cực trị nếu nó nhỏ hơn hoặc lớn hơn tất cả các phần tử lân cận với nó
Dữ liệu vào: Lưu trong tệp CucTri.inp với cấu trúc:
+ Dòng đầu tiên lưu hai số nguyên dương cách nhau một khoảng trắng thể hiện giá trị
Program C u c Tr i ;
Var A : a r r a y [ 1 1 0 0 , 1 1 0 0 ] o f i n t e g e r ;
f i , f o : t e x t ;
n , m , t , p : i n t e g e r ;
Trang 151Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:
+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)
+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp SapXep.out ma trận sau khi được sắp xếp.
Bước 1: Nhập ma trận từ file SapXep.inp
Bước 2: Chuyển ma trận thành mảng 1 chiều
Trang 152Bước 4: Chuyển mảng 1 chiều thành 2 chiều theo đúng vị trí của từng phần tử
Bước 5: Ghi ma trận đã được sắp xếp ra file SapXep.out Chương trình:
Trang 153Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:
+ Dòng đầu tiên lưu hai số nguyên dương (m,n < 104)
+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng
trắng Dữ liệu ra: Ghi vào tệp SapXep.out ma trận sau khi được sắp xếp.
Trang 156Dữ liệu vào: Lưu trong tệp SapXep.inp có cấu trúc như sau:
+ Dòng đầu tiên lưu hai số nguyên dương (m, n < 104)
+ m dòng tiếp theo mỗi dòng lưu n số nguyên Mỗi số cách nhau ít nhất một khoảng
trắng Dữ liệu ra: Ghi vào tệp SapXep.out ma trận sau khi được sắp xếp.
Bước 1: Nhập ma trận từ file SapXep.inp.
Bước 2: Chuyển ma trận thành mảng 1 chiều.
Bước 3: Sắp xếp mảng 1 chiều.
Bước 4: Chuyển mảng 1 chiều thành 2 chiều theo đúng vị trí của từng phần tử Bước 5: Ghi ma trận đã được sắp xếp ra file SapXep.out.
Chú ý: Đối với ma trận vuông cấp (nxn) thì thuật toán chuyển từ mảng 1 chiều sang 2 chiều
đơn giản hơn
Trang 158A s s i gn ( f o , ’ S a p X e p o u t ’ ); r e w r i t e ( f o ) ;
f o r i : = 1 t o m d o
Begin f o r j : = 1 t o n d o w r i t e ( f o , A [ i , j ] : 3 ) ; w r i t e l n ( f o ) ; End;
Trang 159Bài 1: Đối Xứng
Xâu đối xứng là xâu bằng chính xâu đảo của nó Hãy kiểm tra xem một xâu có phải là xâu đối xứng hay không?
Dữ liệu vào: Lưu trong tệp DoiXung.inp một xâu ký tự
Dữ liệu ra: Ghi vào tệp DoiXung.out “Yes” nếu là xâu đối xứng, “No” nếu là xâu không đối xứng
Trang 160sửa lỗi một xâu văn bản bị lỗi khoảng trắng cho trước.
Dữ liệu vào: Lưu trong tệp SuaLoi.inp một xâu ký tự bị lỗi khoảng trắng
Dữ liệu ra: Ghi vào tệp SuaLoi.out xâu đã được sửa hết lỗi
Viết chương trình liệt kê tất cả các từ trong một xâu văn bản
Dữ liệu vào: Lưu trong tệp LietKe.inp một xâu ký tự bị lỗi khoảng trắng
Dữ liệu ra: Ghi vào tệp LietKe.out tất cả từ trong xâu văn bản đã cho, mỗi từ nằm trên một dòng
Trang 161L ư u ý : X â u v ă n b ả n trong input của trương trình trên là không có lỗi khoảng trắng, không códấu câu Nếu input có lỗi khoảng trắng thì gọi thủ tục sửa lỗi (bài 2) trước khi liệt kê các từ Nếuxâu văn bản có các dấu câu thì chương trình sửa lại như sau:
Trang 162Dữ liệu vào: Lưu trong tệp LietKe.inp một xâu ký tự bị lỗi khoảng trắng.
Dữ liệu ra: Ghi vào tệp LietKe.out tất cả các chữ cái và số lượng của nó theo thứ tự từ điển Có cấutrúc như ví dụ sau:
Trang 163đó theo thứ tự xuất hiện trong dãy.
Dữ liệu vào: Lưu trong tệp Palindrom.inp một dãy số (<108 phần tử) nguyên dương Mỗi số(<108) cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp Palindrom.out có cấu trúc như sau: Mỗi dòng ghi một số palindrom theothứ tự xuất hiện trong dãy
Ví dụ:
P a l i n d r o m i n p P a l i n d r o m o u t
1 2 1 1 1 2 3 4 2 2 2 3 5 1 2 1
Trang 1642 2Chương trình:
Trang 165B à i 1 : Fibonacci.
Dãy Fibonacci là dãy vô hạn các số tự nhiên bắt đầu bằng hai phần tử 0 và 1, các phần tử sau đó
được thiết lập theo quy tắc mỗi phần tử luôn bằng tổng hai phần tử trước nó Công thức truy hồi
của dãy Fibonacci là:
F(n)={
( ) ( )Yêu cầu: Tìm số Fibonacci thứ n
Dữ liệu vào: Lưu trong tệp Fibo.inp một số nguyên dương n (n < 108)
Dữ liệu ra: Ghi vào tệp Fibo.out số Fibonacci thứ n
Số hoàn hảo được định nghĩa như sau:
+ 1 không phải là số hoàn hảo
+ Có tổng các ước nhỏ hơn nó bằng chính nó
Yêu cầu: Hãy liệt kê tất cả các số hoàn hảo nhỏ hơn một số nguyên cho trước
Dữ liệu vào: Lưu trong tệp SoHH.inp một số nguyên dương n (n < 104)
Dữ liệu ra: Ghi vào tệp SoHH.out tất cả cá số hoàn hảo nhỏ hơn n
Trang 166S o H H i n p S o H H o u t
Trang 1672 8
4 9 68128Chương trình:
B à i 3 : Thừa số nguyên tố
Hãy phân tích một số ra thành thừa số nguyên tố
Dữ liệu vào: Lưu trong tệp TSNT.inp một số nguyên dương n (n < 106)
Dữ liệu ra: Ghi vào tệp TSNT.out tích các thừa số nguyên tố
Trang 168Dữ liệu vào: Lưu trong tệp Xoa.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng
Dữ liệu ra: Ghi vào tệp Xoa.out tổng của các số nguyên tố
assign( f o , ’ X o a o u t ’ ) ; rewrite( f o ) ;
f o r i : = 1 t o n d o w r i t e ( f o , A [ i ] , ’ ’ );
close( f o ) ;
Trang 169L ư u ý : Thuật toán trên có độ phức tạp O(n3) Ngoài ra còn có thuật toán độ phức tạp O(n) gợi ý như dưới đây:
+ Sử dụng biến kiểu cấu trúc có 2 thành phần, một thành phần lưu giá trị, một thành phần lưu vị trí dầutiên
.+ Sử dụng mảng để lưu số lần xuất hiện của mỗi phần tử
+ Sắp xếp lại theo vị trí xuất hiện (sử dụng thuật toán sắp xếp có độ phức tạp O(n)) +
Xuất ra mảng được sắp xếp theo vị trí xuất hiện
Bài 5: Tổng m số
Cho số tự nhiên n và một số nguyên dương m Hãy tính tổng m số tận cùng của n
Dữ liệu vào: Lưu trong tệp TongM.inp hai số n và m cách nhau ít nhất một khoảng trắng Dữ
liệu ra: Ghi vào tệp TongM.out tổng m số tận cùng của n
Cho dãy số gồm n số nguyên dương Hãy tìm bội chung nhỏ nhất của dãy số đó Dữ
liệu vào: Lưu trong tệp BCNN.inp có cấu trúc như sau:
+ Dòng thứ nhất lưu số nguyên n (n < 107) cho biết số phần tử trong dãy
+ Dòng thứ hai lưu n số nguyên mỗi số cách nhau ít nhất một khoảng trắng Dữ liệu ra:
Ghi vào tệp BCNN.out tổng của các số nguyên tố