[Số học] – Các thuật toán về vòng lặp lồng nhau

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:

Dry Run - Vong lap long nhau

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.

Bài tiếp: Bài tập về thuật toán số học

Bài trước: Thuật toán về dãy Fibonacci

Đối tác tuyển dụng