Đây là bộ đề chọn lọc giúp thầy cô giáo đưa ra một số đề thi HSG phù hợp trong các kỳ thi THPT cũng như THCS. Đáp án có trong tuyển tập các đề thi HSG tin học hàng năm. Bộ đề này không có đáp án giúp cho các em không lệ thuộc vào sách giải.
Trang 1Bài 1 Số bền
Năm 1973, nhà Toán học Neil Sloan đưa ra khái niệm độ bền của một số nguyên không
âm N như sau:
Nếu N có một chữ số thì độ bền của N bằng 0
Nếu N có từ 2 chữ số trở lên thì độ bền của N bằng độ bền của số nguyên là tích các chữ số của N cộng 1
Cho N, tính độ bền của N
Dữ liệu vào từ file văn bản: persist.inp
Dòng 1: Số nguyên N (0 ≤ N ≤ 2.000.000.000)
Kết quả ghi ra file văn bản: persist.out
Dòng 1: Số nguyên là độ bền của N
Ví dụ
Bài 2 Đối xứng
Một số nguyên gọi là số đối xứng nếu viết dạng biểu diễn thập phân của số đó theo chiều ngược lại vẫn thu được chính số đó Cho số nguyên dương N có không quá 100 chữ
số Hãy xác định số nguyên đối xứng nhỏ nhất lớn hơn N
Dữ liệu vào từ file văn bản: nextpal.inp
Dòng 1: Số nguyên N
Kết quả ghi ra file văn bản: nextpal.out
Dòng 1: Số nguyên kết quả
Ví dụ
nextpal.inp Nextpal.out
Trang 299 101
Bài 3 : (7 điểm) TỔNG CÁC SỐ FIBONACI
Dãy Fibonaci là dãy gồm các số: 1; 1; 2; 3; 5; 8; … được xác định bởi công thức sau:
F1=1; F2=1; Fi=Fi-1+Fi-2 với i>2
Em hãy biểu diễn một số tự nhiên tành tổng ít nhất các số Fibonaci khác nhau
Dữ liệu vào: Cho file FIBO.INP chứa số N (N2000000000)
Dữ liệu ra: ghi vào file FIBO.OUT biễu diễn số N thành tổng ít nhất các số Fibonaci khác nhau
Ví dụ
Hoặc
Trang 3Bài 4: Viết chương trình nhập vào tháng, năm và cho biết tháng đó có bao
nhiêu ngày
Bài 5: (5 điểm)
Một người gửi tiền tiết kiệm vào ngân hàng với số tiền ban đầu là x triệu đồng với lãi suất hàng tháng là k% Biết rằng phương thức tính lãi suất là lũy kế theo thời hạn, nghĩa là số tiền lãi hàng tháng được cộng dồn vào số tiền gốc với chu kì (thời hạn) là c tháng và khi chưa đủ chu kì thì không được tính số tiền lãi Sau thời gian t tháng, người đó rút tiền cả vốn và lãi được b triệu đồng Tính b
Hãy viết chương trình giải bài toán trên với x, k, c, t được nhập từ bàn phím và b được viết ra màn hình
Bài 6: (5 điểm)
Dùng ba biến mảng lần lượt biểu diễn số tiền cước phí về điện thoại, điện
và dịch vụ Internet của gia đình mình trong năm qua Em hãy viết một chương trình thực hiện các nhiệm vụ sau:
a Nhập số tiền mà gia đình em đã chi cho ba dịch vụ từng tháng từ bàn phím
b Tính và in ra màn hình: Tổng số tiền mà gia đình em phải trả cho các dịch vụ này trong năm qua; dịch vụ có tổng chi lớn nhất và số tiền trung bình mỗi tháng gia đình em phải trả cho các dịch vụ nói trên
Trang 4Cho số nguyên dương X, khi đảo ngược trật tự các chữ số của X ta sẽ thu được một số nguyên dương Y, Y được gọi là số đảo ngược của X
Ví dụ: X = 613 thì Y = 316 là số đảo ngược của X
Số nguyên dương Y được gọi là số nguyên tố nếu nó chỉ có hai ước số là 1 và chính nó, số
1 không phải là số nguyên tố
Cho hai số nguyên dương P và Q (1 ≤ P ≤ Q ≤ 2109; Q - P ≤ 105)
Yêu cầu: Hãy tìm tất cả các số nguyên dương X nằm thỏa mãn P ≤ X ≤ Q và số đảo ngược
của số X là số nguyên tố
Dữ liệu vào: Cho trong file văn bản TIMSO.INP có cấu trúc như sau:
- Dòng 1: Ghi hai số nguyên dương P Q, hai số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản TIMSO.OUT trên nhiều dòng, mỗi dòng ghi một số
nguyên X tìm dược
Ví dụ:
TIMSO.INP TIMSO.OUT
10 19
11 13 14 16 17
Trang 5Cho hai số nguyên dương M và N, M có p chữ số và N có q chữ số.
Yêu cầu: Tính tổng của hai số M và N.
Dữ liệu vào: Cho trong file văn bản TONG.INP có cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương p là số lượng chữ số của M (1 ≤ p ≤ 30000).
- Dòng 2: Ghi p chữ số của M theo thứ tự từ trái sang phải, các chữ số được ghi cách nhau
ít nhất một dấu cách
- Dòng 3: Ghi số nguyên dương q là số lượng chữ số của N (1 ≤ q ≤ 30000).
- Dòng 4: Ghi q chữ số của N theo thứ tự từ trái sang phải, các chữ số được ghi cách nhau
ít nhất một dấu cách
Dữ liệu ra: Ghi ra file văn bản TONG.OUT theo cấu trúc như sau:
- Dòng 1: Ghi số nguyên dương k là số lượng chữ số của tổng tìm được.
- Dòng 2: Ghi k chữ số của tổng tìm được theo thứ tự từ trái sang phải, các chữ số được
ghi cách nhau ít nhất một dấu cách
Ví dụ:
6
2 2 3 2 3 9 3
2 4 7
6
2 2 3 4 8 6
(Có 85% số test với p, q ≤ 20000; 15% số test với p, q >20000 ).
Bài 9: Số siêu nguyên tố
Trang 6Số siêu nguyên tố là số nguyên tố mà khi xoá bỏ dần các chữ số bên phải của nó thì phần còn lại vẫn là số nguyên tố Ví dụ: 2333 là số siêu nguyên tố vì 2333, 233, 23, 2 đều là các
số nguyên tố
Yêu vầu: Cho số nguyên dương M (M≤30000) Hãy tìm số siêu nguyên tố gần với M nhất, tức là trị tuyệt đối của hiệu giữa số tìm được với M là nhỏ nhất)
Dữ liệu: Nhập vào từ bàn phím số nguyên dương M (không cần kiểm tra dữ liệu nhập) Kết quả: Ghi ra màn hình các số nguyên tố gần M nhất, mỗi số một dòng theo thứ tự số
nhỏ hơn ghi trước
Ví dụ:
Dữ liệu nhập: 30
Kết quả in ra trên 2 dòng:
29
Bài 10 : Viết chương trình nhập vào tháng, năm và cho biết tháng đó có bao nhiêu
ngày?
Bài 11 : Viết chương trình tính điểm trung bình 3 môn Toán, Lý , Hoá theo hệ số 2,1,1 sau
đó xếp loại như sau:
a Loại Giỏi : ĐTB >= 8.0 và không có môn nào dưới 6,5
b Loại Khá : 6.5=<ĐTB < 8.0 và không có môn nào dưới 5
c Loại Trung bình : 5.0 =<ĐTB < 6.5 và không có môn nào dưới 3.5
d Loại Yếu : Còn lại.
Trang 7Bài 12: (6 điểm) Cho một số nguyên k và dãy số nguyên lấy ra từ tệp ‘SN.dat’ hãy viết
chương trình làm các công việc sau:
a, (3 điểm) Sắp xếp thành dãy không giảm và in ra màn hình,
b, (3 điểm) Chèn phần tử có giá trị bằng k sao cho sau khi chèn dãy vẫn là dãy không giảm
và in dãy mới chèn ra màn hình
Tệp SN.dat có dạng như sau
Dòng đầu ghi số nguyên k
Dòng tiếp theo ghi dãy số nguyên
VD
7
2 1 4 5 3 8 9 12 34
Bài 13: (5 điểm)Cho một dãy số nguyên dương lấy ra từ tệp ‘SND.dat’ Hãy tìm các phần
tử có giá trị là số nguyên tố trong dãy và lưu vào tệp ‘DSNT.dat’
Bài 14: (5 điểm) Viết chương trình đổi một số nguyên dương ra số nhị phân.
Bài 15(4 điểm) Cho một dãy số nguyên lấy ra từ tệp ‘SN.dat’ hãy viết chương trình tìm
đoạn dài nhất các phần tử liên tiếp tạo thành một dãy không giảm
VD cho dãy: 1 2 3 2 3 4 4 5 6 7 2 4 5 8 5 6 8 9
đoạn dài nhất là: 2 3 4 4 5 6 7
Trang 8Bài 16 (3 điểm): Sử dụng ngôn ngữ lập trình Pascal viết chương trình tính tổng
S =1/2+1/3+…+1/n Với n được nhập từ bàn phím
Bài 17 (3 điểm) : Hãy viết chương trình tính khoảng cách từ một điểm I có tọa độ là (xi,yi) đến đường thẳng có phương trình là D: Ax + By + C = 0, biết rằng khoảng cách từ I đến đường thẳng D là:
2 2
Ax +By +C
d =
A -B
Bài 18 (3 điểm): Viết chương trình nhập một xâu kí tự, sau đó chỉ ra xem xâu đó có phải
là xâu đối xứng không (xâu đối xứng là xâu có các kí tự giống nhau và đối xứng nhau qua điểm giữa xâu, ví dụ ‘ABBA’ hoặc ‘ABCBA’)
Bài 19 (5 điểm): Viết chương trình đổi một số nguyên dương từ hệ đếm cơ số 10 sang hệ
đếm cơ số 2
Bài 6 (4 điểm) Định mức tiền điện hàng tháng của một hộ gia đình như sau:
+ 50 kWh đầu tiên có giá là 600vnđ/1kWh
+ 50 kWh tiếp theo có giá là 1004vnđ/1kWh
+ 50 kWh tiếp theo nữa có giá là 1214vnđ/1kWh
Viết chương trình nhập chỉ số điện năng tiêu thụ cũ, chỉ số điện năng tiêu thụ mới Hãy tính và in ra số điện năng tiêu thụ và tiền điện phải trả trong tháng của hộ gia đình trên Mức giá này chưa bao gồm thuế giá trị gia tăng (VAT) Hãy viết chương trình tính thuế VAT 10%
Trang 9Ví dụ : Hộ gia đình A sử dụng 145kWh trong 1 tháng thì phải trả 148.313đ (trong đó, thuế 10% là 13.483đ, tiền chưa thuế là 134.830đ)
Bài 20: (5 điểm)
Một người gửi tiền tiết kiệm vào ngân hàng với số tiền ban đầu là x triệu đồng với lãi suất hàng tháng là k% Biết rằng phương thức tính lãi suất là lũy kế theo thời hạn, nghĩa là số tiền lãi hàng tháng được cộng dồn vào số tiền gốc với chu kì (thời hạn) là c tháng và khi chưa đủ chu kì thì không được tính số tiền lãi Sau thời gian t tháng, người đó rút tiền cả vốn và lãi được b triệu đồng Tính b, Hãy viết chương trình giải bài toán trên với x, k, c, t được nhập từ bàn phím và b được viết ra màn hình
Bài 21: (5 điểm)
Dùng ba biến mảng lần lượt biểu diễn số tiền cước phí về điện thoại, điện và dịch vụ Internet của gia đình mình trong năm qua Em hãy viết một chương trình thực hiện các nhiệm vụ sau:
a Nhập số tiền mà gia đình em đã chi cho ba dịch vụ từng tháng từ bàn phím
b Tính và in ra màn hình: Tổng số tiền mà gia đình em phải trả cho các dịch vụ này trong năm qua; dịch vụ có tổng chi lớn nhất và số tiền trung bình mỗi tháng gia đình em phải trả cho các dịch vụ nói trên
Cho số nguyên dương X, khi đảo ngược trật tự các chữ số của X ta sẽ thu được một số nguyên dương Y, Y được gọi là số đảo ngược của X
Ví dụ: X = 613 thì Y = 316 là số đảo ngược của X
Số nguyên dương Y được gọi là số nguyên tố nếu nó chỉ có hai ước số là 1 và chính nó, số
Trang 10Cho hai số nguyên dương P và Q (1 ≤ P ≤ Q ≤ 2109; Q - P ≤ 105).
Yêu cầu: Hãy tìm tất cả các số nguyên dương X nằm thỏa mãn P ≤ X ≤ Q và số đảo ngược
của số X là số nguyên tố
Dữ liệu vào: Cho trong file văn bản TIMSO.INP có cấu trúc như sau:
- Dòng 1: Ghi hai số nguyên dương P Q, hai số được ghi cách nhau ít nhất một dấu cách.
Dữ liệu ra: Ghi ra file văn bản TIMSO.OUT trên nhiều dòng, mỗi dòng ghi một số
nguyên X tìm dược ví dụ.
TIMSO.INP TIMSO.OUT
10 19
11 13 14 16 17