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