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 thuật toán về vòng lặp lồng nhau.

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 cho bài 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 về vòng lặp lồng nhau

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

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

Comments



Blog này nhằm mục đích chia sẻ các kiến thức thực tế liên quan đến ngành công nghiệp phần mềm nhằm giúp các bạn trẻ định hướng tốt hơn trong việc chọn lựa nghề nghiệp của mình. Chúng tôi rất mong nhận được sự đóng góp, chia sẽ của các anh chị có kinh nghiệm cũng như các bạn trẻ.

 Học thuật toán

Hướng dẫn học thuật toán

 Thiết kế Cơ sở dữ liệu

Hướng dẫn thiết kế cơ sở dữ liệu.

 Học lập trình

Hướng dẫn dành cho người mới học lập trình.

 Hot or Not

Phân tích xu hướng công nghệ lập trình

 Phân tích thiết kế hệ thống

Phân tích và thiết kế hệ thống phần mềm

 Scrum Methodology

Bàn về mô hình phát triển phần mềm.