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

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

 

 

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 !

 

Đề 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 !