题解 | 圣诞树
圣诞树
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; }