Cho số nguyên dương n.
Yêu cầu: Tính giai thừa của n bằng phương pháp đệ quy.
Dữ liệu vào: Một dòng chứa số nguyên dương n (0 ≤ n ≤ 20).
Dữ liệu ra: In giá trị của n!.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 5 | 120 | 5! = 5 × 4 × 3 × 2 × 1 = 120. |
Giới hạn:
Yêu cầu: Chương trình phải sử dụng đệ quy để tính giai thừa.
Cho số nguyên không âm n.
Yêu cầu: Tính tổng S = 1 + 2 + ... + n bằng phương pháp đệ quy.
Dữ liệu vào: Một dòng chứa số nguyên n (0 ≤ n ≤ 106).
Dữ liệu ra: In giá trị của S.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 5 | 15 | 1 + 2 + 3 + 4 + 5 = 15. |
Giới hạn:
Yêu cầu: Chương trình phải sử dụng đệ quy để tính tổng.
Cho số nguyên không âm n.
Yêu cầu: Tính tổng các chữ số của n bằng phương pháp đệ quy.
Dữ liệu vào: Một dòng chứa số nguyên n (0 ≤ n ≤ 1018).
Dữ liệu ra: In tổng các chữ số của n.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 2026 | 10 | 2 + 0 + 2 + 6 = 10. |
Giới hạn:
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho số nguyên không âm n.
Yêu cầu: Đếm số lượng chữ số của n bằng phương pháp đệ quy.
Dữ liệu vào: Một dòng chứa số nguyên n (0 ≤ n ≤ 1018).
Dữ liệu ra: In số lượng chữ số của n.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 2026 | 4 | Số 2026 có 4 chữ số. |
Giới hạn:
Ghi chú: Số 0 có đúng 1 chữ số.
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho số nguyên không âm n.
Yêu cầu: Chuyển n từ hệ thập phân sang hệ nhị phân bằng phương pháp đệ quy.
Dữ liệu vào: Một dòng chứa số nguyên n (0 ≤ n ≤ 1018).
Dữ liệu ra: In biểu diễn của n trong hệ nhị phân.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra | Giải thích |
|---|---|---|
| 13 | 1101 | 13 = 8 + 4 + 1 nên biểu diễn nhị phân là 1101. |
Giới hạn:
Ghi chú: Nếu n = 0 thì kết quả là 0.
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho mảng gồm n số nguyên.
Yêu cầu: In các phần tử của mảng theo thứ tự từ trái sang phải bằng phương pháp đệ quy.
Dữ liệu vào: Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 105). Dòng thứ hai chứa n số nguyên.
Dữ liệu ra: In các phần tử của mảng trên một dòng, cách nhau bởi một dấu cách.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 5 3 1 4 1 5 |
3 1 4 1 5 |
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho mảng gồm n số nguyên.
Yêu cầu: In các phần tử của mảng theo thứ tự từ phải sang trái bằng phương pháp đệ quy.
Dữ liệu vào: Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 105). Dòng thứ hai chứa n số nguyên.
Dữ liệu ra: In các phần tử trên một dòng.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 5 3 1 4 1 5 |
5 1 4 1 3 |
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho mảng gồm n số nguyên.
Yêu cầu: Tính tổng các phần tử của mảng bằng phương pháp đệ quy.
Dữ liệu vào: Dòng đầu chứa số nguyên dương n (1 ≤ n ≤ 105). Dòng thứ hai chứa n số nguyên.
Dữ liệu ra: In tổng các phần tử.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 5 3 1 4 1 5 |
14 |
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho một xâu chỉ gồm các chữ cái tiếng Anh.
Yêu cầu: Kiểm tra xem xâu có phải là xâu đối xứng (Palindrome) hay không bằng phương pháp đệ quy.
Dữ liệu vào: Một dòng chứa xâu S (1 ≤ |S| ≤ 105).
Dữ liệu ra: In YES nếu S là xâu đối xứng, ngược lại in NO.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| level | YES |
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho một xâu S và một ký tự c.
Yêu cầu: Đếm số lần xuất hiện của ký tự c trong xâu S bằng phương pháp đệ quy.
Dữ liệu vào: Dòng đầu chứa xâu S (1 ≤ |S| ≤ 105). Dòng thứ hai chứa ký tự c.
Dữ liệu ra: In số lần xuất hiện của c trong S.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| banana a |
3 |
Yêu cầu: Chương trình phải sử dụng đệ quy.
Cho số nguyên dương n.
Yêu cầu: Liệt kê tất cả các xâu nhị phân có độ dài n theo thứ tự từ điển bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 15).
Dữ liệu ra: Mỗi dòng in một xâu nhị phân.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 2 | 00 01 10 11 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho số nguyên dương n.
Yêu cầu: Liệt kê tất cả các xâu độ dài n chỉ gồm hai ký tự A và B theo thứ tự từ điển bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 15).
Dữ liệu ra: Mỗi dòng in một xâu.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 2 | AA AB BA BB |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho số nguyên dương n (1 ≤ n ≤ 9).
Yêu cầu: Liệt kê tất cả các số có đúng n chữ số, các chữ số đôi một khác nhau và chữ số đầu tiên khác 0 bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên n.
Dữ liệu ra: Mỗi dòng in một số thỏa mãn.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 2 | 10 12 13 ... 98 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho số nguyên dương n (1 ≤ n ≤ 15).
Yêu cầu: Liệt kê tất cả các tập con của tập {1,2,...,n} bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên n.
Dữ liệu ra: Mỗi dòng in một tập con theo thứ tự tăng dần của các phần tử.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra (một phần) |
|---|---|
| 2 | ∅ 1 2 1 2 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho hai số nguyên dương n và k (k ≤ n).
Yêu cầu: Liệt kê tất cả các dãy tăng gồm k số được chọn từ tập {1,2,...,n} bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa hai số nguyên n và k (1 ≤ k ≤ n ≤ 15).
Dữ liệu ra: Mỗi dòng in một dãy tăng.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 4 2 | 1 2 1 3 1 4 2 3 2 4 3 4 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho số nguyên dương n.
Yêu cầu: Liệt kê tất cả các cách sắp xếp các số từ 1 đến n bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 8).
Dữ liệu ra: Mỗi dòng in một cách sắp xếp.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 3 | 1 2 3 1 3 2 2 1 3 2 3 1 3 1 2 3 2 1 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho hai số nguyên dương n và k (k ≤ n).
Yêu cầu: Liệt kê mọi cách chọn k số khác nhau từ các số 1 đến n theo thứ tự tăng dần bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa hai số nguyên n và k (1 ≤ k ≤ n ≤ 15).
Dữ liệu ra: Mỗi dòng in một cách chọn.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 4 2 | 1 2 1 3 1 4 2 3 2 4 3 4 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho số nguyên dương n.
Yêu cầu: Liệt kê tất cả các cách phân tích n thành tổng các số nguyên dương theo thứ tự không giảm bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 20).
Dữ liệu ra: Mỗi dòng in một cách phân tích.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra (một phần) |
|---|---|
| 4 | 1+1+1+1 1+1+2 1+3 2+2 4 |
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho một mê cung gồm n hàng và m cột. Mỗi ô chứa số 0 (ô đi được) hoặc 1 (ô cản). Người chơi bắt đầu tại ô (1,1) và cần tìm đường đến ô (n,m).
Yêu cầu: Kiểm tra xem có tồn tại đường đi từ ô (1,1) đến ô (n,m) bằng phương pháp quay lui. Nếu tồn tại, in YES; ngược lại in NO.
Dữ liệu vào: Dòng đầu chứa hai số nguyên n và m (1 ≤ n, m ≤ 10). n dòng tiếp theo, mỗi dòng chứa m số 0 hoặc 1.
Dữ liệu ra: In YES nếu tồn tại đường đi, ngược lại in NO.
Minh họa mê cung:
| S | . | # | . | . |
| # | . | # | . | # |
| . | . | . | . | . |
| . | # | # | . | G |
Trong hình trên:
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 4 5 0 0 1 0 0 1 0 1 0 1 0 0 0 0 0 0 1 1 0 0 |
YES |
Ghi chú:
Yêu cầu: Chương trình phải sử dụng quay lui.
Cho số nguyên dương n.
Yêu cầu: Đếm số cách đặt n quân hậu trên bàn cờ n × n sao cho không có hai quân hậu nào ăn nhau bằng phương pháp quay lui.
Dữ liệu vào: Một dòng chứa số nguyên dương n (1 ≤ n ≤ 10).
Dữ liệu ra: In số cách đặt hợp lệ.
Ví dụ:
| Dữ liệu vào | Dữ liệu ra |
|---|---|
| 4 | 2 |
Yêu cầu: Chương trình phải sử dụng quay lui.