题解 | 圣诞树
圣诞树
https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2
#include <stdio.h> int main() { int n; while (scanf("%d", &n) != EOF) { //| | * | | //(3' ')+[2' '+'*'+2' ']+(3' ') //| | * * | | //(3' ')+[' '+'*'+' '+'*'+' ']+(3' ') //| |* * *| | //(3' ')+['*'+' '+'*'+' '+'*']+(3' ') //| * | | * | //[](' ')[] //| * * | | * * | //[](' ')[] //|* * *| |* * *| //[](' ')[] //| | * | | //()[2' '+'*'+2' ']() //| | * | | //()[2' '+'*'+2' ']() //树的数目增大时,两侧增加(' '),树间增加(' '),底部增加行()[](),但实际上打印完树叶就可以换行了,因此右侧空格不必管 for(int i=1;i<=n;i++){//n排小树 //树叶部分 for(int left=1;left<=n-i;left++){ //打印左侧空格()次数 printf(" "); } for(int tree=1;tree<=i;tree++){ //打印树[]和树间空格()次数 printf(" * "); } printf("\n");//打印完一排树 for(int left=1;left<=n-i;left++){ //打印左侧空格()次数 printf(" "); } for(int tree=1;tree<=i;tree++){ //打印树[]和树间空格()次数 printf(" * * "); } printf("\n");//打印完一排树 for(int left=1;left<=n-i;left++){ //打印左侧空格()次数 printf(" "); } for(int tree=1;tree<=i;tree++){ //打印树[]和树间空格()次数 printf("* * * "); } printf("\n");//打印完一排树 } //树干部分 for(int i=1;i<=n;i++){ for(int j=1;j<=n-1;j++){ //打印左侧空格 printf(" "); } printf(" * \n"); } } return 0; }