Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 180 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
180
Dung lượng
3,7 MB
Nội dung
HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG KHOA CƠNG NGHỆ THÔNG TIN - PT IT BÀI TẬP LẬP TRÌNH Biên soạn : TS NGUYỄN DUY PHƯƠNG Hà Nội, tháng 12/2016 BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 MỤC LỤC I Lập trình với cấu trúc liệu 1.1 Các tập với liệu kiểu số nguyên 1.2 Các tập mảng ma trận 15 1.3 Các tập xâu ký tự 33 1.4 Các tập file cấu trúc 38 Lập trình dựa vào kỹ thuật duyệt đệ qui 44 II Kỹ thuật vét cạn 44 1.6 Kỹ thuật sinh 54 1.7 Kỹ thuật quay lui 62 1.8 Kỹ thuật nhánh cận 73 1.9 Kỹ thuật qui hoạch động 75 III Lập trình dựa vào ngăn xếp, hàng đợi 80 Kỹ thuật xử lý ngăn xếp 80 1.11 Kỹ thuật xử lý hàng đợi 89 1.12 Kỹ thuật xử lý danh sách liên kết 94 1.13 Khử đệ qui dựa vào ngăn xếp và danh sách liên kế t 102 PT 1.10 IV V IT 1.5 Lập trình nhị phân 106 4.1 Cây nhị phân 106 4.2 Cây nhị phân tìm kiếm 108 4.3 B-Cây (thuộc tìm kiếm nhớ ngồi) 114 4.4 Cây cân 114 4.5 Cây đỏ đen 115 4.6 Cây định 116 4.7 Cây mã tiền tố 116 Lập trình Đồ thị 117 5.1 Biểu diễn đồ thị 117 5.2 Kỹ thuật DFS 119 BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 5.3 Kỹ thuật BFS 123 5.4 Đồ thị Euler 136 5.5 Đồ thị Hamilton 145 5.6 Cây khung đồ thị 145 5.7 Bài tốn tìm đường ngắn 155 5.8 Bài toán luồng cực đại mạng 158 5.9 Đồ thị hai phía 161 VI Các kỹ thuật xếp tìm kiếm 163 Các phương pháp xếp 163 6.2 Quicksort 169 6.3 Heapsort 171 6.4 Mergesort 172 6.5 Sắp xếp số 173 6.6 Các phương pháp tìm kiế m bản 174 6.7 Phép băm 177 IT 6.1 PT Tìm kiế m dựa vào số 178 TÀI LIỆU THAM KHẢO 180 6.8 BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 I Lập trình với cấu trúc liệu 1.1 Các tập với liệu kiểu số nguyên BÀ I 1.1.1: TỔNG CHỮ SỐ Viết chương trình tính tổng chữ số số không chữ số Dữ liệu vào: Dòng ghi số test Mỗi test viết dòng số nguyên tương ứng Kết quả: Ghi hình Mỗi test viết dịng giá trị tổng chữ số tương ứng Ví dụ: Output IT Input 10 1000001 BÀ I 1.1.2: PT 1234 BẮT ĐẦU VÀ KẾT THÚC Viết chương trình kiểm tra số nguyên dương (2 chữ số trở lên, khơng q chữ số) có chữ số bắt đầu kết thúc hay khơng Dữ liệu vào: Dịng ghi số test Mỗi test viết dòng số nguyên dương tương ứng cần kiểm tra Kết quả: Ghi hình Mỗi test viết YES NO, tương ứng với liệu vào Ví dụ: BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 Input Output YES 12451 NO 1000012 BÀ I 1.1.3: BỘI SỐ CHUNG NHỎ NHẤT Viết chương trình tính bội số chung nhỏ hai số nguyên dương khơng q chữ số Dữ liệu vào: Dịng ghi số test Kết quả: Ghi hình IT Mỗi test viết dịng hai số nguyên dương tương ứng, cách khoảng trống PT Mỗi test viết dòng giá trị bội số chung nhỏ hai số Ví dụ Input Output 60 30 20 98754568 222222 8888888 BÀ I 1.1.4: SỐ CÓ TỔNG CHỮ SỐ CHIA HẾT CHO 10 Viết chương trình kiểm tra số có thỏa mãn tính chất tổng chữ số chia hết cho 10 hay khơng Dữ liệu vào: Dịng ghi số test Mỗi test viết dịng số ngun dương, chữ số không chữ số BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 Kết quả: Mỗi test viết YES NO tùy thuộc kết kiểm tra Ví dụ Input Output 3333 555555 123455 NO YES YES BÀ I 1.1.5: SỐ ĐẸP Một số coi đẹp số thuận nghịch, tổng chữ số số nguyên tố tất chữ số lẻ Bài toán đặt đếm xem đoạn hai số nguyên cho trước có số đẹp IT Dữ liệu vào: Dòng ghi số test Mỗi test viết dòng hai số nguyên dương Kết quả: PT tương ứng, cách khoảng trống Các số không vượt chữ số Với test viết số lượng số nguyên tố tương ứng Ví dụ Input Output 23 199 2345 6789 222222 99999999 BÀ I 1.1.6: 311 SỐ ĐẸP Một số coi đẹp nếu có tính chất thuận nghịch tổng chữ số chia hết cho 10 Bài toán đặt cho trước số chữ số Hãy đếm xem có số đẹp với số chữ số Dữ liệu vào: Dòng ghi số test BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 Mỗi test viết dòng số chữ số tương ứng cần kiểm tra (lớn nhỏ 10) Kết quả: Ghi hình Mỗi test viết số lượng số đẹp tương ứng Ví dụ Input Output 2 90 TRỊ CHƠI ĐỐN SỐ IT BÀ I 1.1.7: PT Trong lúc rảnh rỗi, hai bạn sinh viên định chơi trị đốn số giống học sinh cấp Mỗi bạn nghĩ hai số ngun khơng âm sau viết tổng hiệu chúng (cũng số nguyên không âm) Công việc bạn xác định hai số ban đầu Ở số lượt chơi, bạn cố tình đưa cặp giá trị khơng thể tổng hiệu hai số nguyên Viết chương trình giúp tính tốn nhanh kết cho tốn Dữ liệu vào: Dịng đầu số test, khơng q 200 Mỗi dịng sau chứa hai số nguyên không âm s d giá trị tổng hiệu hai số Cả hai số s d không 104 Kết quả: Ghi hình Với liệu, đưa hai số ban đầu, số lớn viết trước, cách khoảng trống Nếu khơng thể có cặp số in “impossible” Ví dụ Input Output BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 30 10 40 20 impossible 20 40 BÀ I 1.1.8: MÁY BÁN HÀNG TỰ ĐỘNG Khi mua hàng máy bán hàng tự động, người mua trả số tiền chẵn lớn giá sản phẩm Máy tính tốn để trả lại số tiền thừa cho người mua Giả sử máy có ba mệnh giá tiền dollar, dollar 10 dollar với quy ước lần trả phép dùng tờ dollar tờ dollar Hãy viết chương trình tính số tiền loại mà máy bán hàng tự động phải trả lại cho người mua IT Dữ liệu vào: Kết quả: PT Dòng số test, test ghi dịng hai số ngun khơng âm giá sản phẩm tổng số tiền người mua đưa vào Cả hai giá trị không vượt 105 Với test, viết biểu diễn số tiền cần trả máy bán hàng tự động theo mẫu test ví dụ (Chú ý: số dấu ln có khoảng trống, với dấu =, dấu * dấu +) Ví dụ cho Input Output: Input Output 28 = * 10 + * + * 72 100 163 = 16 * 10 + * + * 37 200 45 = * 10 + * + * 50 BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 BÀ I 1.1.9: (*) BIỂU DIỄN SỐ BẰNG QUE DIÊM Một cách biểu diễn số phổ biến đồng hồ điện tử sử dụng que diêm Các ký tự số biểu diễn sau: Với số lượng que diêm cho trước, định số nhỏ số lớn mà bạn biểu diễn Chú ý: Bạn không phép để thừa que diêm xếp Các số biểu diễn không bắt đầu số Dữ liệu vào: IT Dịng ghi số test, khơng lớn 100 Mỗi test viết dòng số nguyên không lớn 100 số que diêm bạn có Kết quả: PT Với test, output đưa hai số nguyên theo thứ tự số nhỏ số lớn biểu diễn số que diêm cho input (mỗi số cách khoảng trống) Ví dụ cho Input Output: Input Output 77 111 711 108 7111111 15 BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 BÀ I 1.1.10: ĐẾM SỐ CHÍNH PHƯƠNG TRONG ĐOẠN Viết chương trình đếm đoạn hai số nguyên có số phương Dữ liệu vào: Dịng ghi số test Mỗi test viết dòng hai số nguyên dương tương ứng, cách khoảng trống Các số không chữ số Kết quả: Ghi hình Mỗi test viết dịng giá trị số số phương đếm Ví dụ: Output 10 IT Input 23 199 34 PT 2345 6789 BÀ I 1.1.11: SỐ THUẦN NGUYÊN TỐ Một số coi nguyên tố số nguyên tố, tất chữ số nguyên tố tổng chữ số số ngun tố Bài tốn đặt đếm xem đoạn hai số nguyên cho trước có số nguyên tố Dữ liệu vào: Dòng ghi số test Mỗi test viết dòng hai số nguyên dương tương ứng, cách khoảng trống Các số không vượt chữ số Kết quả: Ghi hình Mỗi test viết số lượng số nguyên tố tương ứng Ví dụ Input Ouput 10 BÀI TẬP KỸ THUẬT LẬP TRÌNH – Hiệu chỉnh năm 2016 Với danh sách liệu, xuất danh sách xếp thỏa mãn yêu cầu đề (có định dạng liệu) Ví du ̣: Input: banana, strawberry, orange banana, strawberry, orange 10, 8, 6, 4, 2, x, 30, -20, z, 1000, 1, y 50, 7, kitten, puppy, 2, orangutan, 52, -100, bird, worm, 7, beetle IT Output: banana, orange, strawberry banana, orange, strawberry PT 0, 2, 4, 6, 8, 10 x, -20, 1, y, 30, 1000, z -100, 2, beetle, bird, 7, kitten, 7, 50, orangutan, puppy, 52, worm BÀ I 6.1.21: CHỨNG KHOÁN Cho trước lịch sử giao dịch mã chứng khoán n ngày Hãy xác định k1 ngày có giá thấp k2 ngày có giá cao Input Mỗi test gồm dòng Dòng ghi số n, k1, k2 với n