打印一个N x M矩阵,以便在C ++中每一行和每一列都包含所有元音

在此问题中,我们必须创建大小为n X m的2D矩阵。在此矩阵中,我们只需要以每个行和列中都有所有元音的方式放置元音。

所有元音表示矩阵的每一行和每一列中都存在a,e,i,o,u。这使得所需的最小行和列数为5,即最小的矩阵大小为5X5。

让我们举个例子来更好地理解这个话题

实施例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

说明-元音aeiou依次排列在每一行和每一列中。第一行是aeiou,第二行是eioua,下一行是iouae

实施例2 -

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

说明-N和M的最小值是5。

为了解决这个问题,我们首先要条件是打印5个元素中的最小数量,即,如果在输入“ 不能创建的矩阵”中提供小于5的值。否则,我们将重复打印序列“ aeiou”。通过阵列,可以通过向左旋转“ eioua”,然后向“ iouae”左移来更改要打印的序列。

示例

#include <iostream>
using namespace std;
void vowelMatrix(int n, int m) {
   if (n<5||m<5) {
      cout<<"无法创建Marix!";
      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;
}

输出结果

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