diff --git a/md/0022.md b/md/0022.md new file mode 100644 index 0000000..cda06ad --- /dev/null +++ b/md/0022.md @@ -0,0 +1,25 @@ +สังเกตว่าถ้า $N$ เป็นเลขคู่ ผลลัพธ์จะมี $N-1$ คอลัมน์แต่ถ้า $N$ เป็นเลขคี่ผลลัพธ์จะมี $N$ คอลัมน์ ให้ $M$ แทนจำนวนคอลัมน์ และให้แถวบนสุดเป็นแถวที่ $0$ จนถึงแถวล่างสุดเป็นแถวที่ $N-1$ และให้คอลัมน์ซ้ายสุดเป็นคอลัมน์ 0 จนถึงคอลัมน์ขวาสุดเป็นคอลัมน์ที่ $M-1$ + +ผลลัพธ์ที่เราต้องการประกอบไปด้วยเส้นตรง 4 เส้น เรียกเส้นบนซ้ายว่าเส้นที่ 1 บนขวาเป็นเส้นที่ 2 ล่างซ้ายเป็นเส้นที่ 3 และ ล่างขวาเป็นเส้นที่ 4 เมื่อให้ $i$ แทนเลขแถว และ $j$ แทนเลขคอลัมน์ แต่ละเส้นสามารถใช้สมการมาอธิบายได้ดังนี้ +1. $i + j = \lfloor \frac{N-1}2 \rfloor$ +2. $j - i = \lfloor \frac{N-1}2 \rfloor$ +3. $i - j = \lfloor \frac N2 \rfloor$ +4. $i + j = \lfloor \frac{3N-3}2 \rfloor$ + +```cpp +#include +using namespace std; + +int main() { + int N; cin >> N; + int M = N - !(N&1); + for (int i = 0; i < N; i++) { + for (int j = 0; j < M; j++) { + if (i+j == (N-1)/2 or i+j == (3*N-3)/2 or j-i == (N-1)/2 or i-j == N/2) cout << '*'; + else cout << '-'; + } cout << endl; + } + return 0; +} + +```