Tải bản đầy đủ

Đề thi hoc sinh giỏi tin học 2018 2019

Bà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ụ

persist.inp
99


persist.out
2

Giải thích
Doben(99)=Doben(81)+1=Doben(8)+1+1=0+1+1=2

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ụ
1


nextpal.inp

Nextpal.out

99

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 (N �2000000000)
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ụ.
FIBO.INP
129

FIBO.OUT
129=89+34+5+1

Hoặc
FIBO.INP
8

FIBO.OUT
8=8

2


Bà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.
Bài 7: (3,0 điểm) Tìm số

TIMSO.PAS

3


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ố
1 không phải là số nguyên tố.
Cho hai số nguyên dương P và Q (1 ≤ P ≤ Q ≤ 2109; 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
10 19

TIMSO.OUT
11
13
14
16
17

Bài 8: (3,5 điểm) Tính tổng

TONG.PAS
4


Cho 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ụ:

TONG.INP

TONG.OUT

6

6

2 2 3 2 3 9

2 2 3 4 8 6

3
2 4 7
(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ố
5


Số 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.

6


Bà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

7


Bà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à (x i,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à:

d=

Ax i +Byi +C
A 2 -B2

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%.
8


Ví 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.

Bài 22: (3,0 điểm) Tìm số

TIMSO.PAS

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ố
1 không phải là số nguyên tố.
9


Cho hai số nguyên dương P và Q (1 ≤ P ≤ Q ≤ 2109; 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
10 19

TIMSO.OUT
11
13
14
16
17

10



Tài liệu bạn tìm kiếm đã sẵn sàng tải về

Tải bản đầy đủ ngay

×
x