Vòng lặp lồng nhau là các bài toán thường gặp trong thực tế. Tuy nhiên, các thuật toán về vòng lặp lồng nhau khá khó hiểu cho người mới học. Bài này, hy vọng sẽ giúp các bạn tiếp cận tốt hơn với các bài toán về dạng này. Hãy bắt đầu với bài toán đơn giản sau đây:
Yêu cầu
Viết chương trình nhập vào một số n và in ra hình * có n hàng như sau:
n=3
*
**
***
n=4
*
**
***
****
Bài này giúp bạn rèn luyện kỹ năng về vòng lặp lồng nhau.
Phân tích:
- In ra n hàng -> Cần lặp i từ 1-n để in ra hàng
- Trên mỗi hàng sẽ in ra i ký tự * -> cần lặp j từ 1 – i để in ra các ký tự sao.
Cách giải
- Đầu vào: cần nhập giá trị cho n
- Đầu ra: In ra dãy sao như hình trên
Các bước thực hiện
Nhập giá trị cho biến n
Kiểm tra n
Nếu n <=0
Thông báo nhập lại giá trị lớn hơn 0
Nếu n >0
Cho biến i chạy từ 1 đến n
Cho biến j chạy từ 1-i
In ra ký tự *
Xuống dòng
Cách biểu diễn thuật toán
Trong trường hợp này, tôi sử dụng ngôn ngữ giả.
Declare int n, i, j
Input n
If n<=0 then
Print ‘Lỗi, n phải lớn hơn 0. Vui lòng nhập lại’
Else
Loop i=1 to n
Loop j=1 to i
Print ‘*’
Print ‘/n’ /Xuống dòng
Bạn có thể download đoạn chương trình bằng Java ở đây.
Kỹ thuật Dry Run về vòng lặp lồng nhau
Kết quả Dry Run khi n=4:
Kỹ thuật Dry Run sẽ giúp bạn hiểu rõ hơn về cách thực hiện của thuật toán trong máy tính. Nó sẽ rất hữu ích khi bạn cần kiểm tra kỹ hoặc debug một cho một thuật toán. Hãy tiếp tục với các bài toán tương tự để bạn có thành thạo các bài toán về dạng này.