题解 | 圣诞树
圣诞树
https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2
#include <stdio.h>
void tree(int n )
{
int sum = (2+3*(n-1))*2+1;
int num = 2+3*(n-1);
while (num > 0) {
for (int i = 0; i < num; i++) {
printf(" ");
}
printf("*");
int number = sum - (num+6);
while (number >= num+1) {
for (int i = 0; i < 5; i++) {
printf(" ");
}
printf("*");
number = number - 6;
}
printf("\n");
for (int i = 0; i < num-1; i++) {
printf(" ");
}
printf("* *");
number = sum - (num-1+6);
while (number>= num-1+3) {
for (int i = 0; i < 3; i++) {
printf(" ");
}
printf("* *");
number = number - 6;
}
printf("\n");
for (int i = 0; i < num-2; i++) {
printf(" ");
}
printf("* * *");
number = sum - (num-2+6);
while (number>= num-2+5) {
for (int i = 0; i < 1; i++) {
printf(" ");
}
printf("* * *");
number = number - 6;
}
printf("\n");
num = num-3;
}
num = 2+3*(n-1);
for (int i = 0; i < n; i++) {
for (int j = 0;j< num; j++) {
printf(" ");
}
printf("*");
printf("\n");
}
}
int main() {
int n;
scanf("%d",&n);
tree(n);
return 0;
}

查看7道真题和解析