ในบทความนี้ เราได้รับค่าของหลายแถวและหลายคอลัมน์ เราจำเป็นต้องพิมพ์รูปแบบกล่องเพื่อให้พิมพ์ 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 เป็นต้น หวังว่าบทความนี้จะเป็นประโยชน์