Computer >> Máy Tính >  >> Lập trình >> C ++

In mẫu hình chữ nhật đồng tâm trong ma trận 2d trong C ++


Trong bài toán này, chúng ta phải in một mẫu hình chữ nhật trong ma trận 2D theo cách mà chúng đồng tâm với nhau.

Hãy lấy một ví dụ để hiểu rõ hơn vấn đề này,

Với n =4 là:4 4 4 4 4 4 4 4 3 3 3 3 3 4 4 3 2 2 2 3 4 4 3 2 1 2 3 4 4 3 2 2 2 3 4 4 3 3 3 3 3 4 4 4 4 4 4 4 4

Ở đây, chúng ta phải in mẫu như trên với giá trị n, số nguyên và in các hình chữ nhật đồng tâm dưới dạng -

 n n n n n n-1 n-1 n-1 nn n-1 n-2 n-1 nn n-1 n-1 n-1 nn n n n 

Bây giờ, trong vấn đề này, như chúng ta có thể thấy có (2n-1) tổng cộng các cột và hàng trong ma trận 2D. Ma trận 2D này được in thành hai phần. Giá trị trên sẽ từ 0 đến (2n-1) / 2 và nửa dưới sẽ từ ((2n-1) / 2 + 1) thành 2n-2 .

Bây giờ, mỗi hàng sẽ tiếp tục giảm giá trị 1 cho đến khi số đạt đến số hàng, tức là từ 1 đến i (số hàng). Sau đó, nó tăng số trở lại n.

Ví dụ

Sử dụng logic này cho phép tạo một chương trình để giải quyết vấn đề,

 #include  using namespace std; void print2Dsequence (int n) {int s =2 * n - 1; for (int i =0; i <(s / 2) + 1; i ++) {int m =n; for (int j =0; j  =0; i--) {int m =n; for (int j =0; j  

Đầu ra

Dãy của 4 hình chữ nhật đồng quy là -

 4 4 4 4 4 4 44 3 3 3 3 3 44 3 2 2 2 3 44 3 2 1 2 3 44 3 2 2 2 3 44 3 3 3 3 3 44 4 4 4 4 4 4