Thẻ: De thi học SINH GIỎI Tin học THCS có đáp an violet

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Kỳ thi Học sinh giỏi (HSG) Tin học lớp 9 cấp xã và tỉnh luôn là một trong những thử thách lớn đối với các bạn học sinh đam mê lập trình và thuật toán. Để đạt được thành tích cao, việc luyện đề và cọ xát với các dạng bài thi thực tế từ các năm trước là phương pháp ôn luyện vô cùng hiệu quả.

Nhằm đồng hành cùng các bạn học sinh và quý thầy cô trên địa bàn tỉnh, Vi Tính Tấn Dân xin chia sẻ Bộ 21 Đề thi HSG Tin học lớp 9 Đồng Tháp năm học 2026 – 2027 (Kèm đáp án và hướng dẫn giải chi tiết).

📌 Tổng Quan Tệp Tài Liệu Đề Thi HSG Tin Học Lớp 9 Đồng Tháp

Bộ tài liệu được sưu tầm, tuyển chọn và biên soạn kỹ lưỡng, bám sát cấu trúc đề thi chính thức của Sở GD&ĐT Tỉnh Đồng Tháp qua các kỳ thi gần đây.

Thông Tin Tài LiệuChi Tiết
Môn thiTin học (Khối 9)
Khu vựcTỉnh Đồng Tháp
Năm học2026 – 2027
Số lượng21 Đề thi hoàn chỉnh
Định dạngFile PDF / Word (Dễ dàng tải & in ấn)
Đính kèmĐáp án, Test case & Code mẫu (Pascal / C++ / Python)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Bộ 21 Đề Thi HSG Tin Học Lớp 9 Đồng Tháp 2026 – 2027 (Có Đáp Án)

Đáp án đề thi HSG Tin học lớp 9 cấp thị xã Gò Công:

Đây là một đề HSG THCS khá hay, gồm 5 bài với mức độ từ cơ bản → vận dụng. Mình sẽ phân tích từng bài theo đúng phong cách luyện HSG:

  • Ý tưởng
  • Thuật toán
  • Độ phức tạp
  • Lưu ý dễ sai
  • Code Python dùng sys.stdin=open(...)
  • Giải thích từng dòng

Đáp Án Bài 1: DAY – Ngày lắng nghe:

Đề bài

Cho một ngày dạng

dd/mm
So sánh với
14/02
In ra
BEFORE
nếu trước
AFTER
nếu sau
EXACTLY
nếu đúng.

Phân tích

Ví dụ

15/01
Ngày 15 tháng 1

thì

15/1 < 14/2
=> BEFORE

Ví dụ

01/03
tháng 3

lớn hơn tháng 2

=> AFTER


Ý tưởng

Có hai trường hợp

Nếu tháng nhỏ hơn 2

BEFORE
Nếu tháng lớn hơn 2
AFTER
Nếu tháng bằng 2

So tiếp ngày.

day<14
BEFORE
day==14
EXACTLY
day>14
AFTER

Thuật toán

Đọc chuỗi
Tách ngày và tháng
Nếu month<2
      BEFORE
Nếu month>2
      AFTER
Nếu month==2
      day<14
            BEFORE
      day==14
            EXACTLY
      day>14
            AFTER

Độ phức tạp

Đọc đúng 1 lần

O(1)
Bộ nhớ
O(1)
Nhanh gần như tức thì.

Code Python

import sys
sys.stdin = open("DAY.INP", "r")
sys.stdout = open("DAY.OUT", "w")
s = input()
ngay, thang = map(int, s.split("/"))
if thang < 2:
    print("BEFORE")
elif thang > 2:
    print("AFTER")
else:
    if ngay < 14:
        print("BEFORE")
    elif ngay == 14:
        print("EXACTLY")
    else:
        print("AFTER")

Chú ý

Nhiều bạn so sánh

dd/mm
dưới dạng chuỗi

Ví dụ

9/2
14/2
sẽ sai.

Phải chuyển sang số nguyên.


Đáp Án Bài 2: SUNFLOWER


Đề

Có n bông hoa.

Hoa đặc biệt nếu số hạt là số nguyên tố.

Đếm có bao nhiêu hoa đặc biệt.

1≤n≤10000

ai≤10^12

Phân tích

Ví dụ

1 4 3
chỉ có
3
là nguyên tố.

Đáp án

1

Khó ở đâu?

ai≤10^12
Không thể sàng Eratosthenes.

Ta phải kiểm tra nguyên tố từng số.


Kiểm tra nguyên tố

Một số nguyên tố chỉ cần thử đến

√n
Ví dụ
97
√97≈9

chỉ thử

2
3
5
7
là đủ.

Thuật toán kiểm tra

Nếu

n<2
không nguyên tố.

Nếu

2
nguyên tố.

Nếu

chia hết cho 2
không nguyên tố.

Sau đó

3
5
7
9
11
...
tăng
2
đến
√n
Nếu chia hết

không nguyên tố.

Ngược lại

nguyên tố.


Vì sao đúng?

Nếu

n=a×b
thì luôn tồn tại
a≤√n
nên chỉ cần thử tới căn.

Thuật toán

ans=0
lặp qua từng ai
      nếu nguyên tố
             ans+=1
in ans

Độ phức tạp

Giả sử

M=max(ai)
Mỗi số
O(√M)
Ở đây
√10^12=10^6
Nên
O(n√M)
Trong thực tế rất nhanh vì:
  • gặp ước sẽ dừng sớm
  • nhiều số chẵn
  • n chỉ 10000

Code Python

 
import sys
import math

sys.stdin = open("SUNFLOWER.INP", "r")
sys.stdout = open("SUNFLOWER.OUT", "w")


def nguyen_to(x):
    if x < 2:
        return False

    if x == 2:
        return True

    if x % 2 == 0:
        return False

    i = 3

    while i <= math.isqrt(x):
        if x % i == 0:
            return False
        i += 2

    return True


n = int(input())

a = list(map(int, input().split()))

dem = 0

for x in a:
    if nguyen_to(x):
        dem += 1

print(dem)
 

Vì sao dùng math.isqrt()

Thay vì

int(math.sqrt(x))
ta dùng
math.isqrt(x)
Ưu điểm
  • Chính xác với số rất lớn.
  • Không bị sai số số thực.
  • Nhanh hơn.

Các lỗi thường gặp

Sai 1

1
không phải số nguyên tố.

Sai 2

Quên xét

2

Sai 3

Thử đến

n
thay vì
√n
→ quá chậm.

Sai 4

Dùng

for i in range(2, x):
với
10^12
sẽ không chạy được.

Tổng kết

BàiThuật toánĐộ phức tạpĐộ khó
DAYSo sánh ngày, thángO(1)★☆☆☆☆
SUNFLOWERKiểm tra số nguyên tố đến √nO(n√M)★★☆☆☆

Đáp Án Bài 3: ROBOT (4 điểm)


Đề bài

  • n cây
  • vị trí robot là p
  • pin đủ đi được k đơn vị chỉ từ trái sang phải

Có n cây tại các vị trí

a1 < a2 < ... < an
Đếm xem robot thu hoạch được bao nhiêu cây.

Ví dụ

4 3 4

2 5 6 9
Robot

ở vị trí

3
đi được
4
đơn vị

nên tới

7
Các cây nằm trong đoạn
[3 ; 7]
5
6
=> đáp án
2

Phân tích

Robot KHÔNG quay lại.

Robot chỉ đi

p → p+k
Vậy cây được thu hoạch khi
p ≤ ai ≤ p+k
Bài toán trở thành:

Đếm bao nhiêu số nằm trong đoạn [L,R].


Ý tưởng 1 (dễ hiểu)

Duyệt toàn bộ mảng.

Nếu

p<=ai<=p+k
thì
dem+=1

Thuật toán

 
Đọc dữ liệu

dem=0

For mỗi cây

    nếu p<=ai<=p+k

          dem++

In dem
 

Độ phức tạp

n≤10^6

Chỉ duyệt đúng một lần.

Thời gian

O(n)

Bộ nhớ

O(n)

(vì lưu mảng)

Nếu đọc từng số cũng chỉ O(1) bộ nhớ.


Vì sao đúng?

Mỗi cây chỉ có hai khả năng

  • nằm trong đoạn
  • không nằm trong đoạn

Duyệt hết một lần sẽ không bỏ sót.


Code Python

 
import sys
sys.stdin = open("ROBOT.INP", "r")
sys.stdout = open("ROBOT.OUT", "w")
n, p, k = map(int, input().split())
a = list(map(int, input().split()))
dem = 0
for x in a:
    if p <= x <= p + k:
        dem += 1
print(dem)

Nếu muốn nhanh hơn?

Do dãy đã tăng dần

Có thể dùng

binary search

tìm

  • vị trí đầu tiên ≥ p
  • vị trí cuối cùng ≤ p+k

Độ phức tạp

O(log n)

nhưng đề này O(n) đã đủ.


Các lỗi thường gặp

Sai

if x>p and x<p+k

Sẽ bỏ mất cây ở

p

hoặc

p+k

Phải là

if p<=x<=p+k


Đáp Án Bài 4: LAVENDER


Đề

m dòng

n cột

Ma trận

Đếm số phần tử

>=T

Ví dụ

2 3 50

10 12 50

44 60 55

50

60

55

=>3


Phân tích

Không yêu cầu tìm vị trí.

Không yêu cầu sắp xếp.

Chỉ cần đếm.


Ý tưởng

Đọc từng số

Nếu

>=T

thì tăng biến đếm.


Thuật toán

Đọc
m n T
dem=0
Lặp m lần
      đọc một dòng
      duyệt n số
            nếu >=T
                  dem++
In dem

Độ phức tạp

m,n≤1000
Nhiều nhất
10^6
phần tử.

Thời gian

O(mn)
Bộ nhớ
O(n)
vì chỉ lưu từng dòng.

Vì sao đúng?

Mỗi phần tử được xét đúng một lần.

Không bỏ sót.


Code

 
import sys

sys.stdin = open("LAVENDER.INP", "r")
sys.stdout = open("LAVENDER.OUT", "w")

m, n, T = map(int, input().split())

dem = 0

for _ in range(m):

    dong = list(map(int, input().split()))

    for x in dong:

        if x >= T:
            dem += 1

print(dem)

Tối ưu bộ nhớ

Không cần

a=[]
vì đề không yêu cầu dùng lại.

Đọc từng dòng là tốt nhất.


Lỗi thường gặp

Viết

if x>T
sai.

Đề là

>=T

Đáp Án Bài 5: ESSENCE


Đề

Cho chuỗi

Ví dụ

ABCCDZDC

Độ đậm đặc

=

số lần xuất hiện nhiều nhất của một ký tự.

Ví dụ

A :1

B :1

C :3

D :2

Z :1

Đáp án

3

Phân tích

Đây chính là

tần số lớn nhất.


Cách 1 (đơn giản)

Dùng Dictionary.


Ý tưởng

Duyệt chuỗi.

Nếu ký tự chưa có

thêm vào.

Nếu có

tăng lên 1.

Sau đó lấy giá trị lớn nhất.


Thuật toán

Đọc chuỗi

Dictionary rỗng

For ký tự

      tăng số lần xuất hiện

In max(dictionary.values())

Độ phức tạp

Chuỗi dài

1000
Thời gian
O(n)
Bộ nhớ
O(26)
vì chỉ có chữ cái tiếng Anh in hoa.

Vì sao đúng?

Dictionary lưu đúng số lần xuất hiện từng ký tự.

Giá trị lớn nhất chính là đáp án.


Code Python

import sys

sys.stdin = open("ESSENCE.INP", "r")
sys.stdout = open("ESSENCE.OUT", "w")

s = input()

dem = {}

for ch in s:

    if ch not in dem:
        dem[ch] = 1
    else:
        dem[ch] += 1

print(max(dem.values()))

Cách 2 (đẹp hơn)

Dùng mảng 26 phần tử.


Ý tưởng

A ->0

B ->1

...

Z ->25

Mỗi lần gặp

ord(ch)-ord('A')
thì tăng lên.

Code Python

import sys

sys.stdin = open("ESSENCE.INP", "r")
sys.stdout = open("ESSENCE.OUT", "w")

s = input()

cnt = [0] * 26

for ch in s:

    cnt[ord(ch) - ord('A')] += 1

print(max(cnt))

Vì sao mảng nhanh hơn Dictionary?

  • Truy cập trực tiếp theo chỉ số (O(1) với hằng số rất nhỏ).
  • Không cần băm (hash).
  • Chỉ có 26 chữ cái nên rất phù hợp.

Tổng kết cả đề

BàiÝ tưởngĐộ phức tạpBộ nhớMức độ
Bài 1 – DAYSo sánh ngày, thángO(1)O(1)
Bài 2 – SUNFLOWERKiểm tra số nguyên tố đến √nO(n√M)O(1)⭐⭐
Bài 3 – ROBOTĐếm số vị trí trong đoạn [p, p+k]O(n)O(n) (hoặc O(1) nếu đọc từng số)⭐⭐
Bài 4 – LAVENDERDuyệt ma trận, đếm số ≥ TO(mn)O(n)
Bài 5 – ESSENCEĐếm tần suất ký tự (Dictionary hoặc mảng 26 phần tử)O(n)O(26)

🎯 Nhận xét về Cấu Trúc Trọng Tâm Trong Đề Thi HSG Tin Học 9 Đồng Tháp

Đây là đề HSG THCS thiên về kỹ năng lập trình cơ bản, chưa yêu cầu các thuật toán nâng cao như quy hoạch động, đồ thị hay cây dữ liệu.

Các kiến thức chính được kiểm tra gồm:

  • Bài 1: Rẽ nhánh (if...elif...else).
  • Bài 2: Hàm kiểm tra số nguyên tố và tối ưu đến √n.
  • Bài 3: Duyệt mảng, xử lý đoạn giá trị; có thể mở rộng bằng tìm kiếm nhị phân.
  • Bài 4: Duyệt ma trận và đếm theo điều kiện.
  • Bài 5: Đếm tần suất bằng dict hoặc mảng đếm.

Đây là một đề rất phù hợp để ôn luyện cho học sinh mới bắt đầu thi HSG Tin học vì bao quát nhiều kỹ năng nền tảng quan trọng.

💡 Lời khuyên từ Vi Tính Tấn Dân: Đề thi Tin học lớp 9 hiện nay hướng nhiều đến tư duy thuật toán tối ưu thời gian (O(N \logN) hoặc O(N)). Luyện tập thường xuyên với bộ đề này sẽ giúp bạn làm quen với áp lực thời gian và hạn chế tối đa các lỗi quá thời gian (Time Limit Exceeded).

73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang có ĐÁP ÁN (Mới & Chọn Lọc)

73 Đề thi HSG Tin học Python THCS cấp tỉnh Tiền Giang có ĐÁP ÁN (Mới & Chọn Lọc)

📥 Link Tải Bộ 21 Đề Thi HSG Tin Học 9 Đồng Tháp (File Chuẩn)

Các bạn học sinh và thầy cô có thể tải trọn bộ đề thi hoàn toàn miễn phí theo đường dẫn dưới đây:

👉 [LINK TẢI TRỌN BỘ 21 ĐỀ THI HSG TIN HỌC LỚP 9 ĐỒNG THÁP (PDF/WORD)]

Tải bằng google driver

(Lưu ý: Nếu gặp bất kỳ lỗi nào trong quá trình tải file, vui lòng để lại bình luận bên dưới để Vi Tính Tấn Dân hỗ trợ kịp thời!)

🖥️ Vi Tính Tấn Dân – Đồng Hành Cùng Tri Thức & Công Nghệ

Bên cạnh việc chia sẻ kiến thức và tài liệu học tập miễn phí, Vi Tính Tấn Dân tự hào là đơn vị uy tín chuyên cung cấp:

  • 💻 Dàn máy tính PC Lập trình – Học tập – Chơi game cấu hình tối ưu, giá rẻ.

  • 🛠️ Dịch vụ sửa chữa, nâng cấp Laptop & PC nhanh chóng, tận tâm tại Đồng Tháp.

  • 🎧 Linh phụ kiện máy tính chính hãng (Bàn phím, chuột, màn hình, SSD…).

Nếu bạn đang tìm kiếm một chiếc máy tính mượt mà để phục vụ việc học lập trình C++, Python hay Pascal, hãy liên hệ ngay với Vi Tính Tấn Dân để nhận được sự tư vấn chu đáo nhất!

7. Cách thức đăng ký và đóng học phí như thế nào?

Bạn có thể liên hệ trực tiếp với Thầy qua các kênh sau để được tư vấn và nhận báo giá ưu đãi:

  • Số điện thoại / Zalo: 0937.179.278

  • Hình thức đóng phí: Chuyển khoản ngân hàng hoặc nộp trực tiếp tại cơ sở (nếu học offline).

Đạt giải 3 học sinh giỏi tin học cấp tỉnh

Đạt giải 3 học sinh giỏi tin học cấp tỉnh

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Vui lòng Chấm điểm 5 sao trang cho bài viết hay !

 

 

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

📞 Thông Tin Liên Hệ:

  • Website: vitinhtandan.com

  • Hotline/Zalo: (0937.179.278)

  • Địa chỉ: (Tổ 5, Ấp Tân Lược 1, xã Tân Hương, Đồng Tháp)

Chúc các bạn học sinh ôn luyện thật tốt và đạt kết quả cao nhất trong kỳ thi Học sinh giỏi Tin học lớp 9 sắp tới!

Dưới đây là phần Câu Hỏi Thường Gặp (FAQ) chuẩn SEO dành riêng cho bài viết. Đoạn này không chỉ giúp giữ chân người đọc lâu hơn mà còn rất dễ được Google đưa lên vị trí Featured Snippet (Top 0) hoặc hiển thị trong mục “Mọi người cũng hỏi”:

❓ Câu Hỏi Thường Gặp (FAQ) – Đề Thi HSG Tin Học 9 Đồng Tháp

1. Bộ đề thi HSG Tin học lớp 9 Đồng Tháp có đáp án chi tiết không?

Trả lời: Có. Bộ 21 đề thi HSG Tin học 9 Đồng Tháp do Vi Tính Tấn Dân tổng hợp đều đi kèm đáp án, hướng dẫn giải chi tiết, test case mẫu và code tham khảo bằng các ngôn ngữ phổ biến như C++, Python và Pascal.

2. Tải bộ đề thi HSG Tin học 9 Đồng Tháp 2026 – 2027 có mất phí không?

Trả lời: Hoàn toàn MIỄN PHÍ. Bạn chỉ cần bấm vào đường link Google Drive được đính kèm trong bài viết là có thể tải toàn bộ file PDF/Word về máy để in ấn và học tập dễ dàng.

3. Đề thi HSG Tin học lớp 9 Đồng Tháp thường sử dụng ngôn ngữ lập trình nào?

Trả lời: Hiện nay, các kỳ thi Học sinh giỏi Tin học THCS tại Đồng Tháp ưu tiên sử dụng ngôn ngữ C++Python nhờ tối ưu tốc độ và thư viện phong phú. Tuy nhiên, một số bài thi vẫn chấp nhận Pascal. Học sinh nên tập trung luyện tập kĩ năng tư duy thuật toán trên C++ hoặc Python để đạt điểm tối đa.

4. Học sinh lớp 9 cần tập trung những dạng thuật toán nào để thi HSG Tin học?

Trả lời: Cấu trúc đề thi HSG Tin học 9 Đồng Tháp thường xoay quanh các dạng bài trọng tâm:

  • Xử lý chuỗi, mã hóa và số học cơ bản.

  • Thuật toán tìm kiếm nhị phân, kỹ thuật hai con trỏ, mảng cộng dồn.

  • Sắp xếp tối ưu $O(N \log N)$.

  • Quy hoạch động cơ bản (Đếm cách, Tối ưu hóa).

5. Học lập trình nên chọn cấu hình máy tính/laptop như thế nào?

Trả lời: Để phục vụ tốt việc học lập trình C++, Python và chạy các phần mềm như Code::Blocks, VS Code, PyCharm…, bạn nên chọn PC/Laptop có cấu hình tối thiểu:

  • CPU: Core i3/Ryzen 3 trở lên (thế hệ mới).

  • RAM: Tối thiểu 8GB.

  • Ổ cứng: SSD 256GB để khởi động phần mềm mượt mà.

📌 Nếu bạn cần tư vấn chọn máy tính học tập – lập trình phù hợp với ngân sách, hãy liên hệ ngay hotline của Vi Tính Tấn Dân để được hỗ trợ tốt nhất!

74 Đề thi học sinh giỏi Tin học THCS cấp Tỉnh Có ĐÁP ÁN 2026-2027

Tổng Hợp 74 Đề Thi Học Sinh Giỏi Tin Học THCS Cấp Tỉnh Có Đáp Án (Năm Học 2026-2027)

Kỳ thi chọn học sinh giỏi Tin học cấp THCS (đặc biệt là lớp 9) luôn là một thử thách lớn đòi hỏi sự chuẩn bị kỹ lưỡng về tư duy thuật toán và kỹ năng lập trình. Để đồng hành cùng các thầy cô giáo và các em học sinh, Vi Tính Tấn Dân xin chia sẻ bộ tài liệu “74 Đề thi học sinh giỏi Tin học THCS cấp tỉnh có đáp án” được cập nhật mới nhất cho năm học 2026-2027.

Đây là nguồn tài liệu quý giá giúp các em làm quen với cấu trúc đề thi, rèn luyện kỹ năng giải thuật trên các ngôn ngữ phổ biến như C++, Python và Pascal.

Các đề ôn thi để chuẩn bị thi Cấp Xã thì các em vào đường dẫn phía dưới để tham khảo giúp thầy nhé!

    1. Giải đề 1 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    2. Giải đề 2 và đáp án thi Học sinh giỏi tin học Python C++ THCS có tài liệu ôn thi
    3. Giải đề 3 thi học sinh giỏi tin học lập trình Python có đáp án
    4. Giải đề 4 ôn thi học sinh giỏi Tin Học THCS lập trình Python có đáp án
    5. Giải đề 5 và đáp án thi HSG Tin Python có số Pell.
    6. Giải đề 6 và đáp án bồi dưỡng học sinh giỏi tin 10 có số Armstrong
    7. Giải đề 7 và đáp án  thi học sinh giỏi tin học 10 Python có số Collatz
    8. Giải đề 8 trong 20 đề Bồi dưỡng học sinh giỏi Tin học lớp 9 có số Kaprekar.
    9. Giải đề 9 thi HSG Tin học lớp 8 lập trình Python có số Happy
    10. Giải đề 10 thi tin học trẻ THPT có bài  In các xâu con trong xâu s.
    11. Đề thi hsg tin 11 python có đáp án hay nhất 2024
    12. 12 đề và đáp án thi HSG tin Python có sắp xếp
    13. Đề 13 thi học sinh giỏi Tin học THCS có đáp án hay nhất năm 2024.
    14. 14 đề bồi dưỡng học sinh giỏi tin học lớp 7, 8, 9 THCS mới nhất !
    15. 15 Đề thi học sinh giỏi Tin học lớp 9 cấp huyện hay nhất 2024 – 2025
    16. 16 Đề bài tập Python có lời giải PDF thi HSG cấp huyện mới nhất
    17. 17 đề thi tin học trẻ có Đáp Án python THCS cấp huyện PDF
    18. 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025
    19. 19 thi HSG Tin 9 C ++ hoặc Python có đáp án
    20. 100 đề và đáp án thi HSG tin Python cấp huyện 2025

1. Tại sao bạn nên tải bộ 74 đề thi HSG Tin học này?

Khác với các tài liệu trôi nổi trên mạng, bộ sưu tập 74 đề thi này được Vi Tính Tấn Dân tổng hợp và chọn lọc kỹ càng từ các kỳ thi chính thức của nhiều tỉnh thành trên cả nước trong những năm gần đây.

  • Số lượng lớn: Với 74 đề thi, học sinh có thể thoả sức luyện tập từ cơ bản đến nâng cao.

  • Có đáp án chi tiết: Tất cả các đề đều đi kèm Test case (Input/Output) chuẩn và Code mẫu (Solution) giúp học sinh dễ dàng đối chiếu kết quả.

  • Cập nhật xu hướng mới: Đề thi bám sát cấu trúc ra đề của Bộ GD&ĐT và các Sở GD&ĐT trong giai đoạn 2025-2027, tập trung mạnh vào tư duy thuật toán thay vì chỉ cú pháp ngôn ngữ.

2. Cấu trúc đề thi học sinh giỏi Tin học THCS năm 2026-2027 có gì mới?

Theo xu hướng chuyển đổi số và đổi mới giáo dục, đề thi HSG Tin học cấp tỉnh hiện nay thường có cấu trúc như sau:

  • Thời gian làm bài: 150 phút.

  • Hình thức: Thi lập trình trên máy tính (chấm tự động bằng các phần mềm như Themis, CMS…).

  • Ngôn ngữ lập trình: Cho phép sử dụng C++ (phổ biến nhất), Python (xu hướng mới) và Free Pascal.

Các dạng bài tập thường gặp:

  1. Bài toán số học: Tìm số nguyên tố, ước số, số hoàn hảo, xử lý số lớn…

  2. Xử lý mảng và chuỗi: Sắp xếp, tìm kiếm, thao tác trên xâu ký tự.

  3. Thuật toán & Quy hoạch động: Các bài toán tối ưu, bài toán cái túi, dãy con tăng dài nhất…

  4. Hình học & Tổ hợp: Tính diện tích, đếm số phương án…

3. Review nội dung bộ đề thi

Dưới đây là tóm tắt nội dung của một số đề thi tiêu biểu có trong bộ tài liệu này:

Đề số 01: Đề thi HSG Tin học Tỉnh Tiền Giang (Năm 2021- 2022)

  • Bài 1 (4 điểm): Tìm số nguyên tố đầy đủ?

  • Bài 2 (4 điểm): Tìm Mật Mã (Mảng 1 chiều + Thuật toán đếm)?

  • Bài 3 (4 điểm): Bài toán Ma Trận?

  • Bài 4 (4 điểm): Về hình học Tính Tam Giác?

  • Bài 5 (4 điểm): Tính Lãi Kép Ngân Hàng?

(Tất cả đều có code giải tham khảo bằng C++ và Python)

4. Hướng dẫn ôn thi hiệu quả với bộ tài liệu này

Để đạt kết quả cao nhất trong kỳ thi cấp tỉnh, các em học sinh nên tuân thủ lộ trình sau:

  1. Giai đoạn 1: Tải bộ đề về và phân loại theo độ khó.

  2. Giai đoạn 2: Tự bấm giờ làm bài giống như thi thật (không xem đáp án trước).

  3. Giai đoạn 3: So sánh kết quả với bộ Test case.

  4. Giai đoạn 4: Tham khảo Code mẫu để học hỏi cách viết code tối ưu, ngắn gọn và “sạch” hơn.

5. Tải xuống 74 Đề thi học sinh giỏi Tin học THCS cấp tỉnh (Full Code)

Các thầy cô và các em học sinh có thể tải trọn bộ tài liệu tại liên kết bên dưới. File nén bao gồm: File đề bài (PDF/Word), Bộ Test (Input/Output), và Code giải (CPP/PY/PAS).

Tải đề Thi Đề thi HSG Tin học THCS Python Cấp Tỉnh file PDF:

Tải bằng google driver


Lời kết

Hy vọng bộ tài liệu 74 đề thi học sinh giỏi Tin học THCS cấp tỉnh có đáp án 2026-2027 này sẽ là hành trang vững chắc giúp các em học sinh tự tin bước vào phòng thi và gặt hái giải cao.

Đừng quên ghé thăm Vi Tính Tấn Dân thường xuyên để cập nhật thêm nhiều tài liệu công nghệ, thủ thuật máy tính và đề thi mới nhất nhé!

Đáp Án Bài 1: Số Nguyên Tố Đầy Đủ

import sys
import math

# MỞ FILE VÀO / RA (đúng chuẩn thi)
sys.stdin = open("FULLPRIM.INP", "r")
sys.stdout = open("FULLPRIM.OUT", "w")


# Hàm kiểm tra số nguyên tố
def la_so_nguyen_to(so):
    if so < 2:
        return False
    if so == 2:
        return True
    if so % 2 == 0:
        return False

    can_bac_hai = int(math.sqrt(so))
    for uoc in range(3, can_bac_hai + 1, 2):
        if so % uoc == 0:
            return False
    return True


# ===== CHƯƠNG TRÌNH CHÍNH =====

# Nhập số lượng phần tử
so_luong = int(input())

# Nhập dãy số
day_so = list(map(int, input().split()))

ket_qua = []

# Duyệt từng số trong dãy
for so in day_so:
    if la_so_nguyen_to(so):
        so_dao = int(str(so)[::-1])
        if la_so_nguyen_to(so_dao):
            ket_qua.append(str(so))

# Xuất kết quả
if len(ket_qua) == 0:
    print(0)
else:
    print(" ".join(ket_qua))

🧠 Giải thích ngắn gọn cách làm

  1. Viết hàm la_so_nguyen_to() để kiểm tra số nguyên tố

  2. Với mỗi số trong dãy:

    • Kiểm tra số đó có nguyên tố không

    • Đảo ngược số

    • Kiểm tra số đảo có nguyên tố không

  3. Nếu cả hai đều nguyên tố → là số nguyên tố đẩy đủ

  4. In ra danh sách kết quả, nếu không có in 0


⏱️ Độ phức tạp

  • Kiểm tra 1 số nguyên tố: O(√n)

  • Tổng:

O(N × √max)
  • Bộ nhớ: O(1)

 

Đáp Án Bài 2: Mật Mã:

 

 

# SECRCODE.py
import sys
sys.stdin = open("SECRCODE.INP", "r")
sys.stdout = open("SECRCODE.OUT", "w")

xau = sys.stdin.read().strip()

# Mảng đếm số lần xuất hiện của các chữ cái a -> z
dem = [0] * 26

# Đếm ký tự
for ky_tu in xau:
    vi_tri = ord(ky_tu) - ord('a')
    dem[vi_tri] += 1
# Tạo mã bản quyền
ket_qua = ""
for i in range(26):
    if dem[i] > 0:
        ket_qua += str(dem[i])
print(ket_qua)

🔹 Phân tích bài toán

  • Đề bài cho một xâu ký tự thường a–z

  • Cần:

    1. Đếm số lần xuất hiện của từng chữ cái

    2. Theo thứ tự alphabet a → z

    3. Nếu chữ cái xuất hiện (đếm > 0) thì ghi số lần xuất hiện vào mã

  • Các số được nối liền nhau, không có dấu cách


🔹 Ví dụ phân tích

Xâu:

bcddaagfxybbbccccdeeezyyzzz
Ký tựSố lần
a2
b4
c6
d3
e5
f1
x3
y3
z4

👉 Mã bản quyền: 246351334


🔹 Ý tưởng giải

  • Dùng mảng đếm 26 phần tử, mỗi phần tử tương ứng một chữ cái

  • Duyệt xâu:

    • Mỗi ký tự → tăng biến đếm tương ứng

  • Duyệt mảng từ a đến z:

    • Nếu số đếm > 0 → nối vào kết quả


🔹 Độ phức tạp

  • Thời gian: O(n) (n là độ dài xâu)

  • Bộ nhớ: O(1) (chỉ dùng mảng 26 phần tử)

 

Đáp án bài 3: Chọn Phần Thưởng

 

# BONUSSEL.py
import sys
import math

sys.stdin = open("BONUSSEL.INP", "r")
sys.stdout = open("BONUSSEL.OUT", "w")

m, n = map(int, sys.stdin.readline().split())

tong = 0

for _ in range(m):
    dong = list(map(int, sys.stdin.readline().split()))
    for gia_tri in dong:
        can = int(math.isqrt(gia_tri))
        if can * can == gia_tri:
            tong += gia_tri

print(tong)

🔹 Phân tích bài toán

  • Cho bảng số nguyên dương kích thước m × n

  • Yêu cầu:

    • Tìm tất cả các số chính phương

    • Tính tổng các số đó


🔹 Số chính phương là gì?

Một số x là số chính phương nếu:

x = k² (k là số tự nhiên)

👉 Cách kiểm tra nhanh:

k = int(sqrt(x))
nếu k * k == xx là số chính phương

🔹 Ý tưởng giải

  • Đọc m, n

  • Duyệt từng phần tử trong bảng

  • Với mỗi số:

    • Tính căn bậc hai nguyên

    • Nếu bình phương lại bằng chính nó → cộng vào tổng


🔹 Độ phức tạp

  • Thời gian: O(m × n)

  • Bộ nhớ: O(1)

✅ Ghi nhớ khi đi thi

✔ Dùng math.isqrt() chính xác – nhanh – an toàn
✔ Biến đặt rõ nghĩa
✔ Không in thừa dòng, thừa khoảng trắng

Đáp án bài 4: Tam Giác

# TRIANGLE.py
import sys
sys.stdin = open("TRIANGLE.INP", "r")
sys.stdout = open("TRIANGLE.OUT", "w")

def binh_phuong_khoang_cach(x1, y1, x2, y2):
    return (x2 - x1) ** 2 + (y2 - y1) ** 2

T = int(sys.stdin.readline())

for _ in range(T):
    xa, ya, xb, yb, xc, yc = map(float, sys.stdin.readline().split())

    # Kiểm tra 3 điểm có thẳng hàng không
    dien_tich = (xb - xa) * (yc - ya) - (xc - xa) * (yb - ya)
    if dien_tich == 0:
        print("NO")
        continue

    # Tính bình phương độ dài các cạnh
    AB2 = binh_phuong_khoang_cach(xa, ya, xb, yb)
    BC2 = binh_phuong_khoang_cach(xb, yb, xc, yc)
    CA2 = binh_phuong_khoang_cach(xc, yc, xa, ya)

    # Kiểm tra định lý Pitago
    if (abs(AB2 + BC2 - CA2) < 1e-9 or
        abs(AB2 + CA2 - BC2) < 1e-9 or
        abs(BC2 + CA2 - AB2) < 1e-9):
        print("YES")
    else:
        print("NO")

🔹 Phân tích đề bài

Cho T bộ dữ liệu, mỗi bộ gồm tọa độ 3 điểm A, B, C trong mặt phẳng OXY.

Yêu cầu:
👉 Kiểm tra 3 điểm có tạo thành TAM GIÁC VUÔNG hay không

In:

  • "YES" nếu là tam giác vuông

  • "NO" nếu không phải


🔹 Điều kiện toán học

1️⃣ Ba điểm tạo thành tam giác

Ba điểm không thẳng hàng
Diện tích tam giác ≠ 0

👉 Kiểm tra bằng tích có hướng:

(xB - xA)(yC - yA) - (xC - xA)(yB - yA) ≠ 0

2️⃣ Tam giác vuông (định lý Pitago)

  • Gọi:
  • AB², BC², CA² là bình phương độ dài các cạnh

  • Tam giác vuông nếu:
  • AB² + AC² = BC²
    hoặc
    AB² + BC² = AC²
    hoặc
    AC² + BC² = AB²
  • ⚠️ KHÔNG lấy căn để tránh sai số số thực (đề đã nhắc)

🔹 Công thức bình phương khoảng cách

Với A(x₁, y₁), B(x₂, y₂):

AB² = (x₂ - x₁)² + (y₂ - y₁)²

🔹 Ý tưởng giải

Với mỗi bộ test:

  1. Đọc tọa độ A, B, C

  2. Kiểm tra có tạo thành tam giác

  3. Tính AB², BC², CA²

  4. Kiểm tra định lý Pitago

  5. In kết quả


🔹 Độ phức tạp

  • Mỗi test: O(1)

  • Tổng: O(T)
    → Chạy rất nhanh

 

✅ Giải thích điểm quan trọng (rất hay bị sai)

  • ⚠️ KHÔNG dùng sqrt()
    ⚠️ So sánh số thực phải dùng sai số nhỏ (1e-9)
    ⚠️ Phải kiểm tra tạo thành tam giác trước

📌 Mẹo ăn điểm khi thi

  • ✔ Dùng bình phương độ dài
    ✔ So sánh bằng abs(a-b) < 1e-9
    ✔ In đúng "YES" / "NO" (IN HOA)

1. Bản chất của đoạn code

Đoạn code này dùng để kiểm tra xem một tam giác có phải là tam giác vuông hay không dựa trên Định lý Pitago đảo.

  • Định lý: Nếu tổng bình phương hai cạnh bằng bình phương cạnh còn lại ($a^2 + b^2 = c^2$) thì đó là tam giác vuông.

  • Vì chúng ta không biết cạnh nào là cạnh huyền, nên phải kiểm tra cả 3 trường hợp:

    1. AB^2 + BC^2 = CA^2 (Vuông tại B)

    2. AB^2 + CA^2 = BC^2 (Vuông tại A)

    3. BC^2 + CA^2 = AB^2 (Vuông tại C)


2. Tại sao phải dùng abs(...) < 1e-9 mà không dùng dấu ==?

Đây là kiến thức “sống còn” cho học sinh khi thi HSG Tin học.

  • Vấn đề sai số: Trong máy tính, các số thực (kiểu float) được lưu dưới dạng nhị phân nên thường xảy ra sai số nhỏ.

    • Ví dụ: Kết quả lẽ ra là 25.0 nhưng máy tính có thể lưu là 24.99999999999999.

    • Nếu ta dùng if AB2 + BC2 == CA2:, máy sẽ trả về False (Sai), dẫn đến mất điểm oan.

  • Giải pháp: Thay vì so sánh bằng nhau tuyệt đối, ta kiểm tra xem hiệu của hai vế có đủ nhỏ hay không.

    • abs(AB2 + BC2 - CA2) là trị tuyệt đối của hiệu hai vế.

    • 1e-9 (tức là 10^{-9} hay 0.000000001) được gọi là sai số cho phép (epsilon).

Kết luận: Nếu hiệu của hai vế nhỏ hơn 10^{-9}, ta coi như chúng bằng nhau.


3. Cách giải thích cho học sinh (Ngôn ngữ của Thầy Dân)

Thầy có thể dạy các em như thế này:

  1. Bước 1: Tính bình phương độ dài 3 cạnh (gọi là AB2, BC2, CA2).

  2. Bước 2: Áp dụng Pitago đảo. Nhưng nhớ là trong lập trình, “bằng nhau” với số thực rất mong manh.

  3. Bước 3: Sử dụng “khoảng cách an toàn”. Nếu hai vế chỉ lệch nhau một tí xíu không đáng kể (< 1e-9) thì máy tính chấp nhận đó là tam giác vuông.


4. Code viết lại cho chuyên nghiệp

Các em có thể đưa đoạn này vào chuyên đề Hình học:

# Giả sử đã tính xong bình phương các cạnh AB2, BC2, CA2
sai_so = 1e-9 # Epsilon

# Kiểm tra từng trường hợp vuông tại A, B, hoặc C
vuong_tai_B = abs(AB2 + BC2 - CA2) < sai_so
vuong_tai_A = abs(AB2 + CA2 - BC2) < sai_so
vuong_tai_C = abs(BC2 + CA2 - AB2) < sai_so

if vuong_tai_A or vuong_tai_B or vuong_tai_C:
    print("YES") # Là tam giác vuông
else:
    print("NO")

Đáp án bài 5: Lãi Kép Ngân Hàng:

# COMPINT.py
import sys
sys.stdin = open("COMPINT.INP", "r")
sys.stdout = open("COMPINT.OUT", "w")

T = int(sys.stdin.readline())

for _ in range(T):
    M, r, n = map(float, sys.stdin.readline().split())
    n = int(n)

    tong_tien = M

    # Tính lãi kép qua từng tháng
    for _ in range(n):
        tong_tien = tong_tien + tong_tien * r / 100

    # In kết quả với 1 chữ số thập phân
    print(f"{tong_tien:.1f}")

🔹 Phân tích đề bài

  • T khoản gửi tiết kiệm

  • Mỗi khoản gồm:

    • M: tiền vốn ban đầu

    • r: lãi suất % mỗi tháng

    • n: số tháng gửi

  • Hình thức: LÃI KÉP

    • Tiền lãi của tháng trước được cộng vào vốn để tính lãi cho tháng sau

👉 Yêu cầu:
Tính tổng số tiền nhận được sau n tháng, in ra 1 chữ số thập phân


🔹 Công thức lãi kép theo tháng

Sau mỗi tháng:

T = T + T * r / 100

Tương đương:

T = T * (1 + r/100)

Lặp lại n lần


🔹 Ví dụ phân tích (đề bài)

Gửi:

M = 1 000 000
r = 0.7 (%)
n = 3
  • Tháng 1:
    T1 = 1000000 * 1.007 = 1007000

  • Tháng 2:
    T2 = 1007000 * 1.007 = 1014049

  • Tháng 3:
    T3 = 1014049 * 1.007 = 1021147.3


🔹 Ý tưởng giải

  • Đọc số bộ test T

  • Với mỗi bộ:

    • Gán tong_tien = M

    • Lặp n tháng:

      • tong_tien *= (1 + r/100)

  • In kết quả định dạng 1 chữ số thập phân


🔹 Độ phức tạp

  • Mỗi test: O(n) (n ≤ 500)

  • Tổng: O(T × n) → chạy rất nhanh


⚠️ Lưu ý quan trọng khi thi

Dùng số thực (float)
Không làm tròn sớm
✔ Chỉ làm tròn khi in kết quả
✔ In đúng 1 chữ số thập phân

🧠 Vì sao KHÔNG dùng công thức mũ?

Có thể dùng:

T = M * (1 + r/100)^n

❌ Nhưng dễ sai số số thực
✅ Vòng lặp an toàn hơn – đúng tinh thần đề THCS


📌 Tóm tắt nhanh

Nội dungGhi nhớ
Loại lãiLãi kép
Công thứcNhân dồn từng tháng
Output1 chữ số thập phân
Sai lầm hay gặpLàm tròn sớm

 

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

Tài liệu bồi dưỡng học sinh giỏi tin 10 đề thi HSG Python đề 6

Thầy biết các em đang trong giai đoạn ôn thi nước rút để chuẩn bị cho kỳ thi cấp huyện sắp tới! nên thầy đã chuẩn bị thêm đề ôn thi số 6 này để làm Tài liệu bồi dưỡng học sinh giỏi tin 10 đề thi HSG Python ! Các em nên tự giải trước khi xem lời giải nhé ! Để mình rèn luyện tư duy logic có thể phán đoán các dạng đề chuẩn bị cho kỳ thi tốt hơn !

Đây đã là đề thi số 6 đề và đáp án thi HSG Tin Python cấp huyện 

tai ngay vi tính tấn dân

  • Còn em nào muốn học lý thuyết thì hãy vào đường dẫn phía dưới nhé ! chép từ bài 1 đến bài 21 là giỏi liền kha kha ! có tài liệu pdf tải về thoải mái !
    1. Tự học Python từ cơ bản đến nâng cao đến giải đề thi nhé có tài liệu pdf tải về học 

Đề 6 thi python 150 phút bồi dưỡng học sinh giỏi tin học 10 cấp huyện 

Thứ tựTên bàiFile

chương

trinh

File dữ liệu

vào

File kết quả
Bài 1Phân loại “thời gian” trong ngàyD061*D061.INPD061.OUT
Bài 2Đếm số nguyên chia hết cho 5 và in những số nguyên chia hết cho 5 từ m đến nD062 *D062.INPD062.OUT
Bài 3In các số âm trong mảngD063 *D063 INPD063 OUT
Bài 4Sắp xếp các từ trong xâu theo thứ tự từ điểnD064.*D064.INPD064.OUT
Bài 5In các số Armstrong có n chữ sốD065 *D065.INPD065.OUT
Dấu * được thay thế bởi PY, CPP của ngôn ngữ lập trình được sử dụng tương ứng là Python hoặc C++

 

Bài 1: (4 điểm) Phân loại “thời gian” trong ngày

  • Diễn giải:
    1. Ngủ: Từ 22 giờ 01 phút đến trước 5 giờ 30 phút.
    2. Chuẩn bị sáng; Từ 05 giờ 30 phút đến trước 07 giờ 00 phút-
    3. Làm việc sáng: Từ 07 giờ 00 phút đến 11 giờ 59 phút.
    4. Nghỉ trưa: Từ 12 giờ 00 phút đến 12 giờ 59 phút.
    5. Làm việc chiều: Từ 13 giờ 00 đến 16 giờ 59 phút.
    6. Thư giãn: Từ 17 giờ 00 phút đến 22 giờ 00 phút.
  • Input: Chuổi hh:mm cho biết giờ và phút hiện tại (00<=hh<24,00<=mm<60)
  • Output: “Thời gian” theo mô tả trên
  • Ví dụ về input và output:
inputoutput
06:30Chuan bi sang
12:45Nghi trua

Bài 2: (4 điểm) Đếm số nguyên chia hết cho 5 và in những số nguyên chia hết cho 5 từ m đến n

  • Diễn Giải:
    • Nhập vào hai số nguyên m và n (m<n).
    • Cho biết từ m đến n có bao nhiêu số chia hết cho 5, là những số nào?
  • Input: Hai số nguyên dương m và n (0<m, n<106), trên một dòng, cách nhau bởi dấu cách.
  • Output:
    • Số thứ nhất là số lượng các số chia hết cho 5 từ m đến n, dấu cách, dấu gạch (-), dấu cách,
    • sau đó là các số chia hết cho 5 từ m đến n, phân tách nhau bởi dấu cách.
    • Nếu không có số chia hết cho 5 từ m đến n thi in 0, dấu cách, dấu gạch (-), dấu cách.
  • Ví dụ:
InputOutput
4 153 -5 10 15
2 112 -5 10

Bài 3: (4 điểm) In các số âm trong mảng

  • Diễn giải:
    • Nhập vào một mảng số nguyên a: a0,a1,a2,….an In các số âm trong mảng theo thứ tự xuất hiện.
  • Input: Một dòng chứa các số nguyên có giá trị tuyệt đối không vượt quá 105, cách nhau bởi dấu cách.
  • Output:
    • Các số âm trong mảng trên cùng một dòng, theo thứ tự xuất hiện, cách nhau bởi dấu cách.
    • Nếu không có số âm nào trong mảng thì in
  • Ví dụ:
InputOutput
9 -6 3 8 10 -7 -2-6 -7 -2
7 3 8 0 2

Bài 4: (4 điểm) Sắp xếp các từ trong xâu theo thứ tự từ điển

  • Diễn giải:
    • Nhập vào một xâu s.
    • Sắp xếp các từ trong xâu theo thứ tự từ điển
  • Input:
    • Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách
  • Output: In các từ đã sắp xếp trên một dòng, cách nhau bởi dấu cách
  • Ví dụ:
InputOutput
Toi Hoc LAP TRINH C++ từ năm 20242024 C++ Hoc LAP TRINH Toi nam tu
Thi HOC SINH GIOI mon Tin HocGIOI HOC Hoc SINH Thi Tin mon

Bài 5: (4 điểm) In các số Armstrong có n chữ số

  • Diễn giải:
    • Nhập vào số nguyên dương n. In các số Armstrong có n chữ số
    • Số Armstrong là một số có k chữ số mà tổng các chữ số lũy thừa k của nó bằng chính nó.
    • Chẳng hạn, 153 có 3 chữ số và 13 + 53 + 33 =153 ( 1 mũ 3 + 5 mũ 3 + 3 mũ 3 = 153 ); 1634 có 4 chữ số và 14+64+34+44= 1634 ( 1 mũ 4 + 6 mũ 4 + 3 mũ 4 + 4 mũ 4 = 1634 )
  • Input: Một số nguyên n (0<n<10)
  • Output:
    • Các số Armstrong có n chữ số trên một dòng, cách nhau bởi dấu cách theo thứ tự từ bé đến lớn.
    • Nếu không có số nào thì in dấu “-“
InputOutput
3153 370 371 407
41634 8208 9474

Đáp án bài 1:  Phân loại “thời gian” trong ngày

 

import sys
sys.stdin=open('D061.INP','r')
sys.stdout=open('D061.OUT','w')
a=input()
a=a.split(":")
h=int(a[0])
p=int(a[1])
if (22<=h<=24 and 1<=p<=59 ) or (1<=h<5 and 0<=p<60) or (h==5 and 0<=p<30):
    print('Ngu')
elif (5==h and 30<=p<=59 ) or (h==6 and 0<=p<=59):
    print('Chuan bi sang')
elif 7<=h<=11 and 0<=p<=59:
    print('Lam viec sang')
elif 12==h and 0<=p<=59:
    print('Nghi trua')
elif 13<=h<=16 and 0<=p<=59:
    print('Lam viec chieu')
elif 17<=h<=22 and 0<=p<=59:
    print('Thu gian')

Đáp án bài 2: Đếm số nguyên chia hết cho 5 và in những số nguyên chia hết cho 5 từ m đến n

 

import sys
sys.stdin=open('D062.INP','r')
sys.stdout=open('D062.OUT','w')
m,n=map(int,input().split())
dem=0
for i in range(m,n+1):
if i%5==0:
dem+=1
print(dem,'-',end=' ',sep=' ')
for i in range(m,n+1):
if i%5==0:
print(i,end=' ')

 

Đáp án bài 3: In các số âm trong mảng

 

import sys
sys.stdin=open('D063.INP','r')
sys.stdout=open('D063.OUT','w')
a=list(map(int,input().split()))
dem=0
for i in range(len(a)):
    if a[i]<0:
        dem+=1
        print(a[i],end=' ')
if dem==0:
    print('-')

 

Đáp án bài 4: Sắp xếp các từ trong xâu theo thứ tự từ điển

 

import sys
sys.stdin=open('D064.INP','r')
sys.stdout=open('D064.OUT','w')
s=input()
s=s.split()
s.sort()
for i in s:
    print(i,end=' ')

 

Đáp án bài 5: In các số Armstrong có n chữ số

 

import sys
sys.stdin=open('D065.INP','r')
sys.stdout=open('D065.OUT','w')
def Armstrong(n):
    tong=0
    s=str(n)
    for i in range(len(s)):
        tong+=(int(s[i]))**len(s)
    return tong==n
n=int(input())
a=[]
for i in range(10**(n-1),10**n):
    if Armstrong(i):
        a.append(i)
if len(a)==0:
    print('-')
else:
    print(*a)

 

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

 

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

Đề thi học sinh giỏi Tin Học THCS và THPT có đáp án giải đề 4

Thầy rất vui được gặp lại các em đam mê lập trình python nhé! Đây là đã qua đề 4 trong 20 Đề thi học sinh giỏi Tin Học THCS và THPT có đáp án kèm theo cho các em thuận tiện cho việc học ôn thi để các em chuẩn bị thi học sinh giỏi Tin Học cấp huyện sắp tới! Thầy chúc các em đạt điểm cao và đạt được thành tích tốt nhé!

Đề 4 thi học sinh giỏi Tin Học Trung Học Cơ Sở:

Thứ tựTên hàiFile

chương

trình

File dữ liệu vàoFile kết quả
Bài 1Tính cấp độ bãoD041*D041.1NPD041.OUT
Bài 2Tính trung bình cộng những số nguyên chẵn từ m đến nD042*D042.1NPD042.OUT
Bài 3Tính trung bình cộng các số không chia hết cho 3 trong mảngD043 *D043.1NPD043.OUT
Bài 4In các từ có chiều dài là số nguyên tố trong xâu sD044.*D044.INPD044.OUT
Bài 5In số Harshad thứ nD045 *D045.INPD045.OUT

Bài 1: (4 điểm) Tính cấp độ bão

  • Diễn Giải : Nhập vào tốc độ gió (đơn vị km/h) của một cơn bão ờ ba địa điểm khác nhau, tính tốc độ gió trung bình. Cho biết cơn bão đó thuộc cấp nào sau đây:
    1. Nếu tốc độ gió trung bình dưới 89: Không phải bão
    2. Nếu tốc độ gió trung bình từ 89 đến dưới 102: cấp 10
    3. Nếu tốc độ gió trung  bình từ 102 đến dưới 117:   cấp 11
    4. Nếu tốc độ gió trung  bình từ 117 đến dưới 133:   cấp 12
    5. Nếu tốc độ gió trung bình từ 133 đến dưới 149:   cấp 13
    6. Nếu tốc độ gió trung bình lừ 149 đến dưới 166:   cấp 14
    7. Nếu tốc độ gió trung bình từ 166 đến dưới 183:   cấp 15
    8. Nếu tốc độ gió trung bình trên 183: Siêu bão
  • Input: Nhập vào 3 số nguyên a, b, c; mỗi số một dòng cho biết tốc độ gió của ở 3 địa điểm khác nhau (0<a, b, c<500).
  • Output: Hai dòng:
    • Dòng 1: Tốc độ gió trung bình (một chữ số thập phân)
    • Dòng 2: cấp bão
  • Ví dụ về input và output:
InputOutput
100111.3
120Cap 11
114
13095.0
70Cap 10

 

Bài 2: (4 điểm) Tính trung bình cộng những số nguyên chẵn từ m đến n

  • Diễn giải: Nhập vào hai số nguyên m và n (m<=n). Tính trung bình cộng các số nguyên chẵn từ m đcn n.
  • Input: Hai số nguycn dương m và n (0<m, n<106), mồi số trcn một dỏng.
  • Output: Là trung bình cộng các số nguyên chẵn từ m đến n, làm tròn đến một chữ số thập phân. Nếu không có số chẵn nào từ m đến n thì in “0.0”
  • Ví dụ:
InputOutput
11

15

13.0
2

13

7.0

 

Bài 3: (4 điểm) Tính trung bình cộng các số không chia hết cho 3 trong mảng

  • Diễn giải: Nhập vào một mảng a có n số nguyên: ao, ai, a2,an-i, tính trung bình cộng các số không chia hết cho 3 trong mảng
  • Input: Dòng một là số nguyên n (0<n<106), n dòng tiếp theo là n số nguyên có giá trị tuyệt đối không vượt quá 105
  • Output: Trung bình cộng các số không chia hết cho 3 trong mảng, làm tròn đến ba chữ số thập phân. Nếu không có số nào thỏa điều kiện thì in “0.000”
  • Ví Dụ:
InputOutput
7

9

6

3

8

10

7

-2

5.750

 

5

20

7

6

8

0

11.667

Bài 4: (4 điểm) In các từ có chiều dài là số nguyên tố trong xâu s

  • Diễn giải: Nhập vào một xâu s. In các từ có chiều dài là số nguyên tố trong xâu s
  • Input: Xâu s trên một dòng, có độ dài không vượt quá 105, chứa các ký tự là chữ cái, chữ số, ký hiệu và các dấu cách.
  • Output: Các từ có chiều dài là số nguyên tố trong xâu theo thứ tự xuất hiện, các từ trên một dòng, cách nhau bởi dấu cách.
  • Ví dụ:

Input

Output

Toi hoc LAP TRINH C++ tu nam 2023Toi hoc LAP TRINH C++ tu nam
Thi HOC SINH GIOI mon Tin HocThi HOC mon Tin Hoc

Bài 5: (4 điểm) In sổ Harshad thứ n

  • Diễn Giải:
    • Nhập vào số nguyên dương n. In số Harshad thứ n
    • Số Harshad là một số tự nhiên n mà n chia hết cho tổng các chữ số của nó
    • Ví dụ:
    • n=18; tổng các chữ số của 18 là 1+8=9 và 18 chia hết cho 9 n=24; tổng các chữ số của 24 là 2+4=6 và 24 chia hết cho 6 Dãy số Harshad: 1, 2, 3,4, 5, 6, 7, 8, 9, 10, 12, 18, 20, 21, 24,27,…
    • Số 1 là số Harshad thứ 0
  • Input: Một số nguyên n (0<=n<101)
  • Output: Số Harshad thứ n
  • Ví Dụ:

Input

Output

45
1118

Đáp án bài 1: Tính cấp độ bão

 

import sys
sys.stdin=open('D041.INP','r')
sys.stdout=open('D041.OUT','w')
a=int(input())
b=int(input())
c=int(input())
gtb=(a+b+c)/3
print('%0.1f'%gtb)
if gtb<89:
    print('Khong phai bao')
elif 89<=gtb<102:
    print('Cap 10')
elif 102<=gtb<117:
    print('Cap 11')
elif 117<=gtb<133:
    print('Cap 12')
elif 133<=gtb<149:
    print('Cap 13')
elif 149<=gtb<166:
    print('Cap 14')
elif 166<=gtb<183:
    print('Cap 15')
elif gtb>183:
    print('Sieu bao')

 

Đáp án bài 2: Tính trung bình cộng những số nguyên chẵn từ m đến n

 

import sys
sys.stdin=open('D042.INP','r')
sys.stdout=open('D042.OUT','w')
m=int(input())
n=int(input())
tong=0
dem=0
tbc=0
for i in range(m,n+1):
    if i%2==0:
        tong+=i
        dem+=1
if dem>0:
    tbc=tong/dem
    print('%0.1f'%tbc)

 

Đáp án bài 3: Tính trung bình cộng các số không chia hết cho 3 trong mảng

 

import sys
sys.stdin=open('D043.INP','r')
sys.stdout=open('D043.OUT','w')
n=int(input())
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
            a.append(x)
        except ValueError:
            break
    except EOFError:
        break
dem=0
tong=0
tbc=0
for i in range(len(a)):
    if a[i]%3!=0:
        dem+=1
        tong+=a[i]
if dem>0:
    tbc=tong/dem
    print('%0.3f'%tbc)
else:
    print('0.000')

 

Đáp án bài 4: In các từ có chiều dài là số nguyên tố trong xâu s

 

import sys
sys.stdin=open('D044.INP','r')
sys.stdout=open('D044.OUT','w')
def ktnt(n):
    i=2
    while i*i<=n and n%i!=0:
        i+=1
    return i*i>n and n>1
s=input()
dem=0
i=0
a=[]
while dem<len(s):
    if ktnt(i):
        dem+=1
        a.append(i)
    i+=1
s=s.split()
for i in s:
    for j in range(len(a)):
        if len(i)==a[j]:
            print(i,end=' ')

 

Đáp án bài 5:  In sổ Harshad thứ n

 

import sys
sys.stdin=open('D045.INP','r')
sys.stdout=open('D045.OUT','w')
def Harshad(n):
    a=str(n)
    tong=0
    for i in range(len(a)):
        tong+=int(a[i])
    if n%tong==0:
        return True
    else:
        return False
n=int(input())
a=[]
dem=0
i=1
while dem<=n:
    if Harshad(i):
        dem+=1
        a.append(i)
    i+=1
print(a[n])

Nếu bạn thấy hay ! xin bạn 1 phút ! vui lòng đánh giá 5 sao cho trang website của chúng tôi ! để có động lực làm thêm nhiều bài hay nữa ! cảm ơn quý khách nhé !

Miễn phí 10% khóa học lập trình Python online “Hãy đăng ký ngay để được khuyến mãi !” 

  • Qua đường dây nóng hỏi: 093.717.9278 ( Gặp Thầy Tấn Dân Cử Nhân Công Nghệ Thông Tin)
  • Thầy Dân chuyên bồi dưỡng môn tin học thi học sinh giỏi cấp huyện, cấp tỉnh, ôn luyện thi vào Trường Chuyên Tin.

Khóa học Python online từ cơ bản đến nâng cao

Khóa học Python online từ cơ bản đến nâng cao

Trung tâm tin học Tấn Dân

Thông tin Khuyến mãi giảm giá học phí!

  • Giảm giá ưu đãi 100.000 đ khi đăng ký 2 bạn sinh viên học sinh trở lên !
  • Giảm 15% khi  tham gia 3 bạn sinh viên học sinh trở lên
  • Lưu ý :
    • Để nhận Ưu đãi học viên vui lòng đăng ký qua số điện thoại gặp Thầy Dân qua số điện thoại & Zalo: 0937.179.278
    • Học phí tham gia khóa học Online 1.600.000 trong 7 tháng.
    • Học từ cơ bản đến nâng cao và đến giải đề thi cấp Huyện.
    • Trong nhiều chính sách ưu đãi học viên chỉ áp dụng chính sách ưu đãi cao nhất!
    • Có nhận học viên thường xuyên
    • Thời gian học từ thứ 3 và thứ 5;  từ 2 giờ đến 4 giờ hàng tuần.
  • Hãy đăng ký ngay để nhận ưu đãi đến hết ngày 10 tháng 10 năm 2024 !

 

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc

2 Khóa Học Tin Học Online Thầy Dân Luyện Thi Chuyên Tin Tin Văn Phòng Cấp Tốc