ในบทความนี้ เราได้รับค่าของหลายแถวและหลายคอลัมน์ เราจำเป็นต้องพิมพ์รูปแบบกล่องเพื่อให้พิมพ์ 1 ในแถวที่ 1 คอลัมน์ที่ 1 แถวสุดท้ายคอลัมน์สุดท้ายและ 0 พิมพ์บนองค์ประกอบที่เหลือ ตัวอย่างเช่น −
Input : rows = 5, columns = 4 Output : 1 1 1 1 1 0 0 1 1 0 0 1 1 0 0 1 1 1 1 1 Input : rows = 8, columns = 9 Output : 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1
แนวทางในการหาทางออก
วิธีง่ายๆ วิธีหนึ่งคือการวนซ้ำทุกแถวและทุกคอลัมน์ และตรวจสอบว่าองค์ประกอบอยู่ในแถวแรก คอลัมน์แรก แถวสุดท้าย และคอลัมน์สุดท้ายหรือไม่ ถ้าใช่ ให้พิมพ์ '1'; มิฉะนั้น เราจะอยู่ภายในการพิมพ์เส้นขอบ '0' ด้วยวิธีนี้ เราสามารถสร้างรูปแบบกล่องตามที่เราต้องการได้
ตัวอย่าง
using namespace std; #include <bits/stdc++.h> // Function to print pattern void create_pattern (int rows, int columns) { int i, j; for (i = 1; i <= rows; i++) { for (j = 1; j <= columns; j++) { // If element is in first/last row or first/last column if (i == 1 || i == rows || j == 1 || j == columns) { cout << " 1"; } else { cout << " 0"; } } cout << "\n"; } return; } int main () { int no_of_rows = 7; int no_of_columns = 8; create_pattern (no_of_rows, no_of_columns); return 0; }
ผลลัพธ์
1 1 1 1 1 1 1 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1
คำอธิบายของโค้ดด้านบน
- เรียกฟังก์ชัน create_pattern() ด้วยค่าของจำนวนแถวและจำนวนคอลัมน์
- วงนอกสำหรับ (i =1; i <=rows; i++) เพื่อวนซ้ำจาก 1 ถึงแถวเพื่อผ่านแถว
- วงในสำหรับ (j =1; j <=คอลัมน์; j++) เพื่อวนซ้ำ 1 ถึงคอลัมน์เพื่อผ่านคอลัมน์
- ตรวจสอบว่าองค์ประกอบ (i ==1 || i ==rows || j ==1 || j ==columns) อยู่ในแถวแรก/สุดท้าย หรือพิมพ์คอลัมน์แรก/สุดท้าย '1' สำหรับใช่และ '0' สำหรับ no.
บทสรุป
ในบทความนี้ เราจะแก้ไขรูปแบบกล่องพิมพ์จากจำนวนแถวและคอลัมน์ที่กำหนด เช่น รูปแบบของ 1 ภายใน 0 เรายังได้สร้างโปรแกรม C++ เพื่อแก้ปัญหานี้ เราสามารถสร้างโปรแกรมเดียวกันจากภาษาอื่นๆ เช่น C, java, python เป็นต้น หวังว่าบทความนี้จะเป็นประโยชน์