用 C++ 打印一个 N x M 矩阵,使得每一行和每一列都包含所有元音。


在这个问题中,我们必须创建一个大小为 n X m 的二维矩阵。在这个矩阵中,我们必须以这样的方式放置元音,使得每一行和每一列都包含所有元音。

所有元音意味着每个元音 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

说明 − 元音 a e i o u 按顺序排列在每一行和每一列中。第一行将是 aeiou,下一行将以 e 开头,即 eioua,下一行将是 iouae

示例 2

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

说明 − N 和 M 的最小值为 5。

为了解决这个问题,我们首先要满足一个条件:如果输入“矩阵”中的值小于 5,则打印“无法创建”。否则,我们将以重复的形式打印序列“aeiou”。使用一个数组,要打印的序列通过将其向左旋转一步来改变,使其变成“eioua”,然后是“iouae”。

示例

在线演示

#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;
}

输出

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

更新于:2020年1月3日

236 次浏览

开启你的 职业生涯

完成课程获得认证

开始学习
广告