ในปัญหานี้ เราต้องสร้างเมทริกซ์ 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