题解 | 圣诞树

圣诞树

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;
}

全部评论

相关推荐

飞花断音:这个头像有点搞笑
点赞 评论 收藏
分享
03-09 20:32
运营
牛客972656413号:成绩管理系统会不会有点太。。。
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务