题解 | 圣诞树
圣诞树
https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2
#include <stdio.h>
void tree(char arr[1000][1000], int x, int y) {
arr[x + 1][y - 1 - 1] = '*';
arr[x + 1][y + 1 - 1] = '*';
arr[x][y - 1] = '*';
arr[x + 2][y - 2 - 1] = '*';
arr[x + 2][y - 1] = '*';
arr[x + 2][y + 2 - 1] = '*';
}
int main() {
int n;
while (scanf("%d", &n) == 1) {
int i, j;
char arr[1000][1000] = {};
for (int i = 0; i < 1000; i++) {
for (int j = 0; j < 1000; j++) {
arr[i][j] = ' ';
}
}
for (i = 1; i <= n; i++) {
for (j = 0; j < i; j++) {
tree(arr, 3 * (i - 1), 3 * (n - i + 1) + j * 6);
}
}
for (i = 0; i < n * 3; i++) {
for (j = 0; j < n * 6 - 1; j++) {
printf("%c", arr[i][j]);
}
printf("\n");
}
for (i = 0; i < n; i++) {
for (j = 0; j < (n * 3 - 1); j++) {
printf(" ");
}
printf("*\n");
}
}
return 0;
}
查看4道真题和解析