题解 | #圣诞树#

圣诞树

http://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2

//将图形分为4部分,圣诞树分为3层,再加上尾部1部分
#include<stdio.h>
int main()
{
    int h;
    scanf("%d",&h);
        for( int j = 1 ; j <= 3 * h ; j++ )    //j代表圣诞树所在行1~3h
        {
            if( j % 3 == 1 )    //圣诞树第一层
            {
                for( int m = j  ; m < 3 * h ; m++ )
                {
                    printf(" ");    //圣诞树前的空格
                }
                for( int p = j ; p > 0 ; p = p - 3 )    
                {
                    printf("*     ");
                }
                printf("\n");
            }
            if( j % 3 == 2 )    //圣诞树第二层
            {
                for( int m = j ; m < 3 * h ; m++ )
                {
                    printf(" ");    //圣诞树前的空格
                }
                for( int p = j ; p > 0 ; p = p - 3 )    
                {
                    printf("* *   ");
                }
                printf("\n");
            }
            if( j % 3 == 0 )    //圣诞树第三层
            {
                for( int m = j ; m < 3 * h ; m++ )
                {
                    printf(" ");    //圣诞树前的空格
                }
                for( int p = j ; p > 0 ; p = p - 3 )    
                {
                    printf("* * * ");
                }
                printf("\n");
            }
        }
    for( int k = 1 ; k <= h ; k++ )    //尾巴
    {
        for( int y = 1 ; y <= 6 * h - 1; y++ )    //y代表列数
        {
            if( y == 3 * h ) printf("*");
            else printf(" ");
        }
        printf("\n");
    }
    return 0;
}
全部评论

相关推荐

评论
2
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务