Cho số nguyên n, nhiệm vụ là tạo và hiển thị mẫu hình lục giác.
Ví dụ
Input: n = 5 Output: (hình ảnh lục giác)
Input: n = 4 Output: (hình ảnh lục giác)
Phương pháp:
- Nhập số
ntừ người dùng. - Chia mẫu thành ba phần: trên, giữa, dưới.
- Dùng vòng lặp in từng phần với dấu
*và khoảng trắng.
Thuật toán
BẮT ĐẦU
Bước 1: Hàm pattern(int n)
len = 2*n - 1
// Phần trên
Với i từ 0 đến n-1:
temp = i + n
Với k từ 0 đến temp-1:
Nếu k == n+i-1 hoặc k == n-i-1: in '*'
Ngược lại: in khoảng trắng
In newline
// Phần giữa
Với m từ 0 đến n-3:
Với j từ 0 đến len-1:
Nếu j == 0 hoặc j == len-1: in '*'
Ngược lại: in khoảng trắng
In newline
// Phần dưới
res = n - 1
Với h từ res xuống 0:
temp2 = h + n
Với k từ 0 đến temp2-1:
Nếu k == n+h-1 hoặc k == n-h-1: in '*'
Ngược lại: in khoảng trắng
In newline
KẾT THÚC
Mã nguồn C
#include <stdio.h>
void pattern(int n) {
int len = 2 * n - 1;
// Phần trên
for (int i = 0; i < n; i++) {
int temp = i + n;
for (int k = 0; k < temp; k++) {
if ((k == n + i - 1) || (k == n - i - 1))
printf("*");
else
printf(" ");
}
printf("\n");
}
// Phần giữa
for (int m = 0; m < n - 2; m++) {
for (int j = 0; j < len; j++) {
if (j == 0 || j == len - 1)
printf("*");
else
printf(" ");
}
printf("\n");
}
// Phần dưới
int res = n - 1;
for (int h = res; h >= 0; h--) {
int temp2 = h + n;
for (int k = 0; k < temp2; k++) {
if ((k == n + h - 1) || (k == n - h - 1))
printf("*");
else
printf(" ");
}
printf("\n");
}
}
int main() {
int n = 5;
pattern(n);
return 0;
}
Kết quả
Hiển thị mẫu hình lục giác bằng dấu * (xem hình ảnh).