Professional Documents
Culture Documents
04 OnTinh
04 OnTinh
*)
Cho một dãy số vô hạn các số nguyên được sắp xếp tăng dần, mỗi số chỉ chứa các chữ số
4 và 7.
Yêu cầu: Hãy tìm số thứ N trong dãy. Sáu số đầu tiên trong dãy gồm: 4, 7, 44, 47, 74, 77.
Dãy số được đánh thứ tự từ 1.
Dữ liệu: Đọc vào từ file FindN.inp gồm:
Dòng đầu tiên chứa số nguyên T – cho bộ dữ liệu cần kiểm tra
T dòng sau mỗi dòng chứa 1 số nguyên N.
Kết quả: Ghi ra file FindN.out:
Ứng với mỗi bộ dữ liệu đầu vào, in ra số thứ N trong dãy đã cho.
Ví dụ:
FindN.inp FindN.out
5 7
2 44
3 74
5 77
6 744
11
Bài 2. Số Chẵn – Lẻ (Evenodds.*)
Là một người khó tính, Nam thường xuyên không hài lòng với tình trạng hiện tại của sự
vật, đặc biệt với thứ tự của các số tự nhiên nguyên dương. Cậu quyết tâm sắp xếp lại chúng.
Nhưng có quá nhiều số tự nhiên, vì vậy Nam quyết định bắt đầu với n số đầu tiên. Nam
viết xuống dãy số sau đây: trước hết là tất cả các số nguyên lẻ từ 1 đến n (theo thứ tự tăng
dần), sau đó tất cả các số nguyên chẵn từ 1 đến n (cũng theo thứ tự tăng dần).
Yêu cầu: Hãy giúp Nam tìm ra số nào sẽ đứng ở vị trí số k.
Dữ liệu vào: Một dòng duy nhất chứa số nguyên n và k (1 ≤ k ≤ n ≤ 1012).
Dữ liệu ra: In số sẽ đứng ở vị trí số k.
Ví dụ:
EVENODDS.INP EVENODDS.OUT
10 3 5
77 6
Bài 3. Toán học(math.*)
Nam mới vào học tại một ngôi trường mới và cậu ấy yêu thích lớp học Toán. Hôm
nay, Lớp học của cậu ấy đã nghiên cứu các biểu thức số học. Vào cuối giờ, giáo viên đã
viết ba số nguyên dương a, b, c trên bảng. Nhiệm vụ của các bạn học sinh là chèn các phép
toán '+' và '*', và có thể sử dụng dấu ngoặc giữa các số để giá trị của biểu thức cho kết quả
càng lớn càng tốt.
Ví dụ: Cho 3 số 1, 2 và 3 trên bảng. Dưới đây là một số cách đặt phép toán và dấu ngoặc:
1+2*3=7
1 * (2 + 3) = 5
1*2*3=6
(1 + 2) * 3 = 9
Lưu ý rằng bạn có thể chèn phép tính giữa a và b, và giữa b và c, giữ nguyên vị trí các số
ban đầu. Giá trị tối đa đạt được là 9.
Yêu cầu: Cho a, b và c in giá trị tối đa có thể nhận được.
Dữ liệu vào: Chứa ba số nguyên a, b và c, mỗi số nguyên trên một dòng (1 ≤ a, b, c ≤ 10).
Dữ liệu ra: In giá trị tối đa của biểu thức nhận được.
Ví dụ:
MATH.INP MATH.OUT
1 9
2
3
2 60
10
3
Bài 4. Đếm bội số(CountDiv.*)
Cho 4 số nguyên 𝐿, 𝑅, 𝑎, 𝑏.
Yêu cầu: Hãy đếm số lượng các bội số của a hoặc b có giá trị thuộc đoạn [𝐿, 𝑅]
Dữ liệu: Đọc vào từ file CountDiv.inp gồm:
Dòng đầu tiên của đầu vào chứa số nguyên 𝑇(1 ≤ 𝑇 ≤ 100) cho biết số bộ dữ liệu
cần kiểm tra.
Mỗi bộ dữ liệu gồm một dòng chứa 4 số nguyên 𝐿, 𝑅, 𝑎, 𝑏(1 ≤ 𝐿 ≤ 𝑅 ≤ 109 ; 1 ≤
𝑎, 𝑏 ≤ 104 ).
Kết quả: Ghi ra file CountDiv.out:
Tương ứng với mỗi bộ dữ liệu đầu vào, in ra một số là đáp án bài toán trên một dòng.
Ví dụ:
CountDiv.inp CountDiv.out
2 2
5 11 4 6 289
3 1000 5 9
Bài 5. Tìm giá trị dương nhỏ nhất – MaxPositive.*
1 1 1
Cho biểu thức 𝑇 = 1 + + + ⋯ + và số thực x.
3 5 2𝑁−1
Yêu cầu: Tìm số nguyên dương 𝑁 lớn nhất thỏa mãn 𝑇 < 𝑥.
Dữ liệu: vào từ file MaxPositive.inp
Dòng đầu chứa T số nguyên cho biết số bộ dữ liệu cần test.
T dòng tiếp theo, mỗi dòng là 1 bộ dữ liệu chứa số thực x.
Ràng buộc:
1 ≤ 𝑇 ≤ 100; 1 ≤ 𝑥 ≤ 100.
Kết quả: In ra file MaxPositive.out
Ứng với bộ dữ liệu vào, in ra 1 dòng là số nguyên N tìm được theo yêu cầu.
Ví dụ:
MaxPositive.inp MaxPositive.out
1 3
1.6
Bài 6. Các hình chữ nhật có cùng chu vi – Rectangles.*
Cho biết số nguyên dương 𝑁.
Yêu cầu: Hãy tìm và in ra diện tích của tất cả các hình chữ nhật có chu vi N và có độ dài
các cạnh là số nguyên dương.
Dữ liệu: vào từ file Rectangles.inp
Dòng đầu chứa 𝑇 số nguyên cho biết số bộ dữ liệu cần test.
𝑇 dòng tiếp theo, mỗi dòng là 1 bộ dữ liệu chứa số nguyên dương 𝑁.
Ràng buộc:
1 ≤ 𝑇 ≤ 100; 1 ≤ 𝑁 ≤ 10000.
Kết quả: Ghi ra file Rectangles.out
Ứng với mỗi bộ dữ liệu test, in ra 1 dòng chứa các số đo diện tích các hình chữ nhật
khác nhau có chu vi N. các giá trị diện tích cần được in theo trật tự tăng dần và chỉ
in các giá trị khác nhau. Nếu không tìm được hình chữ nhật nào thỏa mãn yêu cầu
thì in ra -1.
Ví dụ:
Rectangles.inp Rectangles.out
3 -1
5 -1
2 46
10
_ SEQ8.INP SEQ8.OUT
7 4
8 -10 6 -5 9 1 -3
Giải thích: dãy con đơn điệu độ dài 4 ví dụ là dãy (-10, -5, 1, 12).
𝑆𝑢𝑏1: 𝑛 < 5000.
𝑠𝑢𝑏2 ∶ 𝑛 <= 500000.
Bài 13. SEQ9.*
Cho dãy gồm n số nguyên dương và một số nguyên K. Bạn hãy giúp Tèo tìm ra đoạn con
dài nhất gồm các phần tử liên tiếp sao cho tổng các phần tử này chia hết cho K.
Dữ liệu vào: SEQ9.INP
Dòng 1 là N và K (1 ≤ 𝑘 ≤ 105 )
Dòng thứ 2 là danh sách n phần tử 𝑎1 , 𝑎2 , … , 𝑎𝑛 ; 0 ≤ 𝑎𝑖 ≤ 109 )
Kết quả: SEQ9.OUT : Là độ dài lớn nhất tìm được.
Ví dụ:
SEQ9.INP SEQ9.OUT
94 6
3 9 9 5 1 1 10 3 5
Giới hạn: 𝑆𝑢𝑏1: 𝑛 <= 5000; 𝑆𝑢𝑏2: 𝑛 <= 106 .