Professional Documents
Culture Documents
1. Một số lưu ý
- Nhập dữ liệu: map(ép kiểu,input().split()) để nhập đồng thời nhiều biến với
các giá trị khác nhau. Mỗi giá trị cách nhau bởi 1 dấu cách (khoảng trắng).
- In dữ liệu ra màn hình:
+ Lưu ý cách in số thực (‘%a.bf’%n)
+ In xuống dòng (end= ‘\n’)
- Trong NNLT Python có một số hàm được xây dựng sẵn mà người dùng có thể
sử dụng. Ví dụ như hàm max, min, sort, sorted, …
- Trong Python có thể gán như sau:
a,b=b,a. Câu lệnh trên tương đương như sau:
tg=a
a=b
b=tg
Tức là: hoán đổi (trao đổi giá trị của a với b mà không cần 1 biến trung
gian)
- Câu lệnh and (và)
(a>=0) and (a<=9) trong python có thể biểu diễn như sau:
0<=a<=9
2. Một số bài tập
Bài 1. TRÒ CHƠI TRÊN TRỤC SỐ Tên tệp bài làm: GAMES.PY
Trò chơi được mô tả như sau: trên trục số biểu diễn các điểm nguyên, đặt ba
quân cờ tại các vị trí nguyên A, B, C. Hai người chơi luân phiên. Mỗi khi đến
lượt, người chơi sẽ nhặt quân cờ bên ngoài và đặt vào vị trí nguyên nào đó ở
khoảng giữa hai quân cờ còn lại (không được đặt quân cờ vào vị trí đã có quân
cờ ). Trò chơi kết thúc khi ba quân cờ đứng sát cạnh nhau. Người ta muốn biết
có thể duy trì trò chơi lâu nhất là bao nhiêu lượt chơi.
Yêu cầu: Nhập vào các số nguyên a, b, c và in ra số lượt chơi nhiều nhất có thể.
Ví dụ:
INPUT OUTPUT
359 3
* Xem hình minh họa trục số biểu diễn 3 điểm A, B, C lúc ban đầu
A B C
0 3 5 9
* Hướng dẫn
- Nhập vào 3 tọa độ x,y,z
- Tìm giá trị lớn nhất và giá trị nhỏ nhất của 3 điểm
- Nếu x!=max và x!=min:
sl=max(abs(x-max),abs(x-min))-1 #abs là hàm trị tuyệt đối
- Nếu không:
+ Nếu y!=max và y!=min:
sl=max(abs(y-max),abs(y-min))-1 #abs là hàm trị tuyệt đối
+ Nếu z!=max và z!=min:
sl=max(abs(z-max),abs(z-min))-1 #abs là hàm trị tuyệt đối
- Còn lại sl=0
Bài 2. KHỐI HỘP CHỮ NHẬT Tên tệp bài làm: KHOIHCN.PY
Một viên gạch có dạng khối hộp chữ nhật với ba kích thước là a, b, c. Người ta
muốn biết: có thể đưa viên gạch đó qua lỗ hổng hình chữ nhật có kích thước x, y
hay không?
Yêu cầu: Nhập vào từ bàn phím các số nguyên dương a, b, c, x và y. In ra chuỗi
thông báo "CO", nếu có thể đưa viên gạch qua lỗ hổng; ngược lại, in ra chuỗi
thông báo "KHONG".
Ví dụ:
INPUT OUTPUT
34745 CO
54325 KHONG
34525
* Hướng dẫn
So sánh nếu 2 cạnh bất kỳ của khối hình hộp chữ nhật nhỏ hơn hoặc bằng kích
thước của hình chữ nhật thì sẽ có thể đưa viên gạch qua
215
output
4
input
516
output
2
* Hướng dẫn
Vì điều kiện của bải ra là 1<=B<A<10 9 và 1<V<109 nên ta không cần xét các
điều kiện A=B=0 hoặc A<B và V=0
- Nếu A>=V in ra là 1
- Nếu không thì ta xét hai trường hợp
+ trường hợp 1: (V-B)%(A-B)=0 thì in ra kết quả là phần nguyên của
phép chia (V-B)//(A-B)
+ trường hợp 2: (V-B)%(A-B)!=0 thì in ra kết quả là phần nguyên của
phép chia (V-B)//(A-B)+1
Input Output
45 2
23 23
86 0
INPUT OUTPUT
1 1 2023 02 01 2023
31 12 2023 01 01 2024
29 2 2024 01 03 2024
Nếu t thuộc tháng 1, 3, 5,7,8,10,12:
Nếu d<31:
d=d+1
Nếu d==31:
Nếu t==12:
d=1
t=1
n=n+1
Nếu không:
d=1
* Làm thêm: Tìm ngày liền trước của ngày vừa nhập (ngày hôm qua)
BÀI 6. VÒNG TAY TÊN FILE: VONGTAY.PY
Người con gái miền núi rất thích đeo vòng tay, bộ vòng tay thường có 7 chiếc
dùng để đếm thời gian. Cứ sau 01 ngày họ tháo chiếc vòng ở tay này đeo qua tay
khác và sẽ di chuyển ngược lại nếu như hết 01 tuần. Người con gái hẹn gặp lại
người yêu sau n ngày. Hãy cho biết ở thời điểm đó, số lượng vòng trên mỗi tay
sẽ bằng bao nhiêu. Giả sử ban đầu cô gái đeo vòng tay bên trái.
Dữ liệu vào: là số nguyên dương n, dữ liệu vào đảm bảo 1 ≤ n ≤ 100.
Dữ liệu ra: gồm hai số nguyên ghi trên một dòng, cách nhau một khoảng
trắng, cho biết số vòng bên tay trái và số vòng bên tay phải tại ngày thứ n.
Ví dụ
input
5
output
25
input
12
output
52
* Hướng dẫn
468 10
10 1 7 4