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

การหา Pattern ของ 1 ภายใน 0 โดยใช้ C++

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

// ฟังก์ชันพิมพ์รูปแบบ
void create_pattern(int rows, int columns) {
    int i, j;
    for (i = 1; i <= rows; i++) {
        for (j = 1; j <= columns; j++) {
            // ถ้าองค์ประกอบอยู่ในแถวแรก/สุดท้าย หรือคอลัมน์แรก/สุดท้าย
            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() ด้วยค่าจำนวนแถวและจำนวนคอลัมน์
  • ลูปนอก for (i = 1; i <= rows; i++) เพื่อวนจาก 1 ถึง rows เพื่อไปผ่านแถว
  • ลูปใน for (j = 1; j <= columns; j++) เพื่อวนผ่าน 1 ถึง columns เพื่อไปผ่านคอลัมน์
  • ตรวจสอบ if (i == 1 || i == rows || j == 1 || j == columns) องค์ประกอบอยู่ในแถวแรก/สุดท้าย หรือคอลัมน์แรก/สุดท้าย พิมพ์ '1' สำหรับใช่ และ '0' สำหรับไม่ใช่

สรุป

ในบทความนี้ เราแก้ปัญหาการพิมพ์รูปแบบกล่องจากจำนวนแถวและคอลัมน์ที่กำหนด คือ รูปแบบของ 1 ภายใน 0 เรายังสร้างโปรแกรม C++ เพื่อแก้ปัญหานี้ เราสามารถสร้างโปรแกรมเดียวกันจากภาษาต่างๆ เช่น C, Java, Python ฯลฯ ได้ หวังว่าบทความนี้จะเป็นประโยชน์