Thẻ: Đề thi học sinh giỏi Tin học lớp 9

6 Giải đề thi học sinh giỏi tin học lớp 9 THCS tỉnh bình phước 2019 – 2020

🚀 Giải Chi Tiết Đề Thi HSG Tin Học THCS Bình Phước (Có Code Python Chuẩn) – Dễ Hiểu, Lên Tay Nhanh

Bạn đang ôn thi học sinh giỏi Tin học cấp tỉnh? Bài viết này tổng hợp và giải chi tiết các bài trong đề HSG Tin học THCS Bình Phước, kèm code Python chuẩn thi, giải thích dễ hiểu và tối ưu để bạn áp dụng ngay.

Hướng dẫn Giải đề thi học sinh giỏi tin học lớp 9 THCS Tỉnh Bình Phước 2019 – 2020 mới cập nhật ngày 11/4/2026

GIẢI BÀI 1: ĐIỂM TRUNG BÌNH

1 Giải đề thi học sinh giỏi tin học lớp 9 THCS tỉnh bình phước 2019 - 2020

 

import sys

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

# đọc dữ liệu
x, y = map(int, input().split())

# tính điểm trung bình
dtb = (3 * x + y) / 4

# kiểm tra
if dtb >= 5:
    print(1)
else:
    print(0)

GIẢI BÀI 2: TÍNH TỔNG

2 De thi HSG tỉnh Bình Phước

2 thi học sinh giỏi tin học lớp 9 THCS tỉnh bình phước 2019 - 2020

🧠 Phân tích

Yêu cầu:
👉 Tính tổng M chữ số tận cùng của số N

Ví dụ:

  • N = 25487, M = 2 → lấy 2 chữ số cuối: 8 + 7 = 15
  • N = 5876512, M = 3 → lấy: 5 + 1 + 2 = 8

⚡ Cách làm

Có 2 cách:

✅ Cách 1: Dùng chuỗi (dễ hiểu nhất)

  • Đổi N → string
  • Lấy M ký tự cuối
  • Cộng lại

💻 Code Python (chuẩn thi)

import sys

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

# đọc dữ liệu
n = input().strip()
m = int(input())

# lấy m chữ số cuối
last_digits = n[-m:]

# tính tổng
tong = 0
for c in last_digits:
    tong += int(c)

print(tong)

🚀 Cách 2: Dùng toán học (pro hơn, không cần string)

👉 Ý tưởng:

  • Lấy từng chữ số cuối bằng % 10
  • Lặp M lần

💻 Code:

 

import sys

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

n = int(input())
m = int(input())

tong = 0

for _ in range(m):
    tong += n % 10
    n //= 10

print(tong)

 


🎯 So sánh

CáchƯu điểmNhược
ChuỗiDễ hiểuChậm hơn chút
Toán họcNhanh, chuẩn HSGKhó nghĩ hơn

🔥 Lưu ý quan trọng

  • Nếu M > số chữ số của N → vẫn chạy đúng (lấy hết số)
  • Độ phức tạp: O(M) → rất nhanh

GIẢI BÀI 3: BỘ BA SỐ LỚN NHẤT

 

3 giải bài bộ 3 lớn nhất đề thi học sinh giỏi tin học THCS

Bài này là dạng trượt cửa sổ (Sliding Window) – cực kỳ hay trong HSG 🔥


🧠 Phân tích

Ta cần:

  • Xét mọi bộ 3 số liên tiếp:

    ai+ai+1+ai+2a_i + a_{i+1} + a_{i+2}

  • Tìm tổng lớn nhất
  • Nếu nhiều bộ → chọn chỉ số nhỏ nhất

⚡ Ý tưởng tối ưu

👉 Không cần tính lại từ đầu mỗi lần
→ Dùng cửa sổ trượt

  • Ban đầu:
    sum = a[0] + a[1] + a[2]
  • Sau đó:

    sum = sum – a[i-1] + a[i+2]

⏱ Độ phức tạp: O(n) (rất nhanh)

 

import sys

# đọc/ghi file
sys.stdin = open("BOMAX.INP", "r")
sys.stdout = open("BOMAX.OUT", "w")

# nhập dữ liệu
n = int(input())
day = list(map(int, input().split()))

# tính tổng 3 phần tử đầu tiên
tong_hien_tai = day[0] + day[1] + day[2]
tong_lon_nhat = tong_hien_tai

vi_tri_bat_dau = 0  # vị trí bắt đầu (0-based)

# duyệt các bộ còn lại
for i in range(1, n - 2):
    # cập nhật tổng bằng cửa sổ trượt
    tong_hien_tai = tong_hien_tai - day[i - 1] + day[i + 2]
    
    # nếu tìm được tổng lớn hơn thì cập nhật
    if tong_hien_tai > tong_lon_nhat:
        tong_lon_nhat = tong_hien_tai
        vi_tri_bat_dau = i

# in kết quả (đổi sang chỉ số 1-based)
print(tong_lon_nhat)
print(vi_tri_bat_dau + 1, vi_tri_bat_dau + 3)

📌 Ví dụ

Input:

5
2 8 4 6 3

Các bộ:

  • (2,8,4) = 14
  • (8,4,6) = 18 ✅
  • (4,6,3) = 13

👉 Output:

18
2 4

🚀 Lưu ý quan trọng (hay bị sai)

  • Chỉ update khi > (không phải ≥)
    → để giữ chỉ số nhỏ nhất
  • In ra chỉ số 1-based

🔥 Nâng cấp (chuẩn HSG thật)

Bạn có thể gặp biến thể:

  • Bộ k phần tử lớn nhất (k bất kỳ)
  • Không liên tiếp → dùng DP
  • Tổng lớn nhất nhưng ≤ X → khó hơn

🧠 Giải thích ngắn gọn

  • tong_hien_tai: tổng của 3 số liên tiếp đang xét
  • tong_lon_nhat: tổng lớn nhất tìm được
  • vi_tri_bat_dau: vị trí đầu của bộ 3

👉 Mỗi lần:

bỏ số bên trái + thêm số bên phải

⚠️ Lỗi hay gặp

  • Dùng >= → sai (phải dùng > để lấy vị trí nhỏ nhất)
  • Quên đổi sang 1-based
  • Sai chỉ số i + 2

GIẢI BÀI 4: MẬT KHẨU

4 mật khẩu

🧠 Bài: MẬT KHẨU

📌 Yêu cầu (suy ra từ đề)

  • Cho xâu S (độ dài ≤ 255)
  • Tìm một số nguyên P từ các chữ số trong S
  • Nếu:
    • Không có chữ số nào
    • Hoặc chỉ toàn số 0
      👉 thì P = 0

🎯 Cách hiểu chuẩn (dạng rất hay thi)

👉 Lấy tất cả chữ số trong chuỗi S, ghép lại thành số lớn nhất có thể


⚡ Ví dụ dễ hiểu

SKết quả
“a1b2c3”321
“abc”0
“0000”0
“t9h2”92

 

 

 

import sys

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

# nhập xâu
s = input().strip()

# lấy các chữ số
chu_so = []

for c in s:
    if c.isdigit():
        chu_so.append(c)

# nếu không có chữ số
if len(chu_so) == 0:
    print(0)
else:
    # sắp xếp giảm dần để tạo số lớn nhất
    chu_so.sort(reverse=True)
    
    # ghép lại thành số
    ket_qua = "".join(chu_so)
    
    # nếu toàn số 0
    if int(ket_qua) == 0:
        print(0)
    else:
        print(int(ket_qua))

🔥 Giải thích nhanh

  • isdigit() → kiểm tra có phải số không
  • sort(reverse=True) → tạo số lớn nhất
  • "".join() → ghép lại

⚠️ Lưu ý thi

  • Không dùng int sớm → dễ lỗi với số lớn
  • Xử lý riêng trường hợp toàn số 0

 

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é !

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

18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất 2025

Mến chào các em yêu thích môn lập trình Python! Để các em có thể chuẩn bị tốt cho kỳ thi học sinh giỏi cấp huyện sắp tới Thầy đã Tuyển tập Bộ đề thi học sinh giỏi trung học phổ thông môn Tin học. Trong đó có 18 Đề thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025 để các em có thể dễ dàng ôn luyện để có thể dễ dàng thi đậu kỳ thi học sinh giỏi tin học cấp huyện sắp tới ! Chúc các em thành công !

Đây đã là đề thi số 18 Đề thi học sinh giỏi Tin học THCS có đáp án 

Các đề thi ở cấp huyện cần luyện tập nâng cao:

  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

nguồn: 300bàicode.vn

Giải ngay đề 18 thi học sinh giỏi Tin học THCS có đáp ÁN dễ học nhất năm 2025 !

Thứ tựTên bàiFile

chương

trình

File dữ liệu

vào

File kết quả
Bài 1Phân loại nguy cơ nhiễm CovidD191.*D191.INPD191.OUT
Bài 2ln số đảo ngược của các số nguyên từ m đến nD192.*D192.INPD192.OUT
Bài 3In các số có tổng chữ số là số chính phương trong mảngD193.*D193.INPD193.OUT
Bài 4Đếm số lần xuất hiện của một từ trong xâuD194.*D194.INPD194.OUT
Bài 5Tách các thành phần trong số điện thoại bànD195.*D195.INPD195.OUT

Bài 1: (4 điểm) Phân Loại nguy cơ nhiễm Covid ?

  • Diễn giải: 
    • Để đánh giá nguy cơ dịch COVID-19, người ta dựa vào số lượng F0 được phát hiện hàng tuần trong cộng đồng.
    • Nhập vào số lượng F0 mới được phát hiện dương một xã (thị trấn) là một số nguyên n (0 < n < 105), hãy trả lời mức độ theo qui ước:
    • Nguy cơ thấp: 0 < n < 20
    • Nguy cơ trung bình: 20 <=n <50
    • Nguy cơ rất cao: 150 <=n
  • Input: Một số nguyên có giá trị từ 0 đến 10 mũ 5 cho biết giá trị của n.
  • Ouput: Kết quả theo mô tả trên.
  • Ví dụ:

 INPUT

OUTPUT

21Nguy co trung binh
63Nguy co cao

Bài 2: (4 điểm) In sổ đảo ngược của các số nguyên từ m đến n ?

  • Diễn giải:
    • Nhập vào hai số nguyên m và n (m<=n).
    • In số đảo ngược của các số nguyên từ m đến n.
  • Input: Hai số nguyên dương m và n (0<m, n<10 mũ 5 ), trên một dòng, cách nhau bởi dấu cách.
  • Output: Số đảo ngược của các số nguyên theo thứ tự từ m đến n, các số cách nhau một dấu cách.
  • Ví dụ:
InputOutput
11 1511 21 31 41 51
2 132 3 4 5 6 7 8 9 1 11 21 31

Bài 3: (4 điểm) In các số có tổng chữ số là số chính phương trong mảng ?

  • Diễn giải:
    • Nhập vào một mảng a có n số nguyên: a0, a1, a2, …..an. In các số có tổng chữ số  số chính phương trong mảng theo thứ tự xuất hiện.
  • 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á 10s.
  • Output:
    • Các có tổng chữ sổ là số chính phương 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ổ có tổng chữ số là số chính phương nào trong mảng thì in dấu “-“
  • Ví dụ:

Input

Output

718 97 10 -31
18
61
97
8
10
17
-31

 

572 81 0 22
72
3
81
0
22

 

Bài 4: (4 điểm) Đếm số lần xuất hiện của một từ trong xâu ?

  • Diễn giải:
    • Nhập vào một xâu s và một từ X.
    • Đếm số lần xuất hiện của X trong xâu s
  • Input:
    • Xâu s trên dòng một, 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.
    • Xâu X trên dòng hai là một từ chứa chữ cái với độ dài không vượt quá 10 mũ 2
  • Output: Số lần xuất hiện của từ X trong xâu.
  • Ví Dụ:
Input

Output

Toi moi mua mot chiec PC moi, PC moi, that su rat moi! moi4
Chiec PC moi chay that muot

ngon

0

Bài 5: (4 điểm) Tách các thành phần trong số điện thoại bàn ?

  • Diễn giải:
  • Nhập vào một chuỗi s là số điện thoại bàn đầy đủ. Tách các thành phần trong số điện thoại: mã quốc gia, mã vùng, số điện thoại chính.
  • Input: Chuỗi s trên một dòng, có độ dài không vượt quá 102, chứa các chữ cái, chữ số, và ký hiệu. Các thành phần phân tách nhau bởi dấu cách
  • Output: In mã quốc gia trên dòng một, mã vùng trên dòng hai và số điện thoại chính trên dòng ba
  • Ví dụ:
Input

Output

+1 212 5551234+1
212
5551234

 


+84 273 987654321+84
273
987654321

 

Đáp án bài 1: (4 điểm) Phân Loại nguy cơ nhiễm Covid ?

 

import sys
sys.stdin=open('D191.INP','r')
sys.stdout=open('D191.OUT','w')
n=int(input())
if 0<=n<20:
    print('Nguy co thap')
elif 20<=n<50:
    print('Nguy co trung binh')
elif 50<=n<150:
    print('Nguy co cao')
elif 150<=n:
    print('Nguy co rat cao')

 

Đáp án bài 2: (4 điểm) In sổ đảo ngược của các số nguyên từ m đến n ?

 

import sys
sys.stdin=open('D192.INP','r')
sys.stdout=open('D192.OUT','w')
def daonguoc(n):
    s=str(n)
    s=s[::-1]
    return int(s)
m,n=map(int,input().split())
for i in range(m,n+1):
    print(daonguoc(i),end=' ')

 

Đáp án bài 3: (4 điểm) In các số có tổng chữ số là số chính phương trong mảng ?

 

import sys,math
sys.stdin=open('D193.INP','r')
sys.stdout=open('D193.OUT','w')
def tcs(n):
    tong=0
    while n>0:
        tong+=n%10
        n=n//10
    return tong
def ktcp(n):
    if n<0:
        return False
    x=int(math.sqrt(n))
    return x*x==n
n=int(input())
a=[]
while True:
    try:
        line=input()
        try:
            x=int(line)
            a.append(x)
        except ValueError:
            break
    except EOFError:
        break
dem=0
for i in range(len(a)):
    if ktcp(tcs(abs(a[i]))):
        dem+=1
        print(a[i],end=' ')
if dem==0:
    print('-')

 

Đáp án bài 4: (4 điểm) Đếm số lần xuất hiện của một từ trong xâu ?

 

import sys
sys.stdin=open('D194.INP','r')
sys.stdout=open('D194.OUT','w')
s1=input()
s2=input()
print(s1.count(s2))

 

Đáp án bài 5: (4 điểm) Tách các thành phần trong số điện thoại bàn ?

 

import sys
sys.stdin=open('D195.INP','r')
sys.stdout=open('D195.OUT','w')
a=list(map(str,input().split()))
for i in range(len(a)):
    print(a[i])

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 !