โจทย์
สร้างเมทริกซ์ 2 มิติขนาด n x m โดยวางเฉพาะสระ (a, e, i, o, u) ให้แถวและคอลัมน์ทุกแถวมีสระครบทุกตัว ขนาดเมทริกซ์ขั้นต่ำคือ 5x5
ตัวอย่าง
ตัวอย่าง 1: N=5, M=5
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 แถวถัดไปเลื่อนซ้าย 1 ตัวเป็น eioua ต่อไป iouae...
ตัวอย่าง 2: N=3, M=4
Matrix cannot be created.
คำอธิบาย: ค่าต่ำสุดของ N และ M คือ 5
วิธีแก้ปัญหา
ตรวจสอบก่อนว่าขนาดเมทริกซ์น้อยกว่า 5x5 หรือไม่ ถ้าใช่พิมพ์ข้อความ error มิฉะนั้นให้พิมพ์ลำดับ 'aeiou' ซ้ำ โดยหมุนซ้าย 1 ตัวในแต่ละแถว
ตัวอย่างโค้ด C++
#include <iostream>
using namespace std;
void vowelMatrix(int n, int m) {
if (n < 5 || m < 5) {
cout << "Matrix 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