用 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 次瀏覽

開啟你的 職業生涯

完成課程獲得認證

開始學習
廣告
© . All rights reserved.