Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> C++

พิมพ์เมทริกซ์ N x M เพื่อให้แต่ละแถวและคอลัมน์มีสระทั้งหมดในนั้นใน C++


ในปัญหานี้ เราต้องสร้างเมทริกซ์ 2 มิติขนาด 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 คือถ้าให้ค่าน้อยกว่า 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