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

In một ma trận N x M sao cho mỗi hàng và cột có tất cả các nguyên âm trong đó bằng C ++


Trong bài toán này, chúng ta phải tạo một ma trận 2D kích thước n X m. Và trong ma trận này, chúng ta chỉ phải đặt các nguyên âm sao cho mỗi hàng và cột có tất cả các nguyên âm trong đó.

Tất cả các nguyên âm có nghĩa là tất cả a, e, i, o, u đều có trong mỗi hàng và mỗi cột của ma trận. Điều này làm cho số hàng và cột tối thiểu được yêu cầu là 5, tức là ma trận nhỏ nhất có kích thước 5X5.

Hãy lấy một ví dụ để hiểu chủ đề tốt hơn

Ví dụ 1 -

Input : N = 5 and M = 5.
Output :
   a e i o u
   e i o u a
   i o u a e
   o u a e i
   u a e i o

Giải thích - Theo trình tự, các nguyên âm a e i o u được sắp xếp thành từng hàng, từng cột. Hàng đầu tiên có aeiou , tiếp theo sẽ bắt đầu với e là eioua và tiếp theo sẽ là iouae .

Ví dụ 2 -

Input : N = 3 M = 4
Output : Matrix cannot be created.

Giải thích - giá trị nhỏ nhất của N và M là 5.

Để giải quyết vấn đề này, trước tiên chúng tôi đặt điều kiện rằng số phần tử tối thiểu bằng 5, tức là nếu giá trị nhỏ hơn 5 được cung cấp trong đầu vào “ma trận, không thể tạo " được in. Nếu không, chúng tôi sẽ in chuỗi ‘aeiou’ ở dạng lặp lại. Với một mảng, trình tự sẽ được in được thay đổi bằng cách xoay nó sang trái một bước, sang ‘eioua’, sau đó là ‘iouae’.

Ví dụ

#include <iostream>
using namespace std;
void vowelMatrix(int n, int m) {
   if (n<5||m<5) {
      cout<<"Marix cannot be created!";
      return;
   }
   string s = "aeiou";
   for (int i = 0; i < n; i++) {
      for (int j = 0; j < m; j++) {
         cout<<s[(j+i) % 5]<<" ";
      }
      cout << endl;
   }
}
int main(){
   int n = 5, m = 5;
   vowelMatrix(n, m);
   return 0;
}

Đầu ra

a e i o u
e i o u a
i o u a e
o u a e i
u a e i o