题目描述:
因为疫情,David没有出门购买圣诞节所需要的圣诞树,心里感觉空落落的。请你用程序给他绘制一个圣诞树,满足他的心愿。绘制规则如下:
1.输入的正整数n为总行数;
2.每三行一组,最后剩下的1~3行绘制树干,整体居中;
3.每一组(以第i组为例,i从1开始)第一行打印3个’’,第二行打印3+4i个’’,第三行打印3+8i个’*’;
4.树干的那几行每行3个’*’。
–by 李彦君
输入格式:
输入正整数n
输出格式:
参照题干和样例
样例输入:
12
样例输出:
***
*******
***********
***
***********
*******************
***
***************
***
***
***
数据范围:
1≤n≤42
#include <stdio.h>
int main(){
int n,group,shugan,dizuo,zhongjianweizhi,i,j,k,g,z,l,shuganflag,m;
scanf("%d",&n);
//判断一下行数是不是三的倍数
if(n%3==0){
group=n/3-1;
shugan=3;
}
else if(n%3!=0){
group=n/3;
shugan=n%3;
}
dizuo=3+8*group;
zhongjianweizhi=(dizuo/2)+1;
//开始画图
for(i=1;i<=group;i++){
for(j=1;j<zhongjianweizhi-1;j++){
printf(" ");
}
printf("***\n");
for(k=1;k<zhongjianweizhi-(3+4*i)/2;k++){
printf(" ");
}
for(g=1;g<=3+4*i;g++){
printf("*");
}
printf("\n");
for(z=1;z<zhongjianweizhi-(3+8*i)/2;z++){
printf(" ");
}
for(l=1;l<=3+8*i;l++){
printf("*");
}
printf("\n");
}
for(shuganflag=1;shuganflag<=shugan;shuganflag++){
for(m=1;m<zhongjianweizhi-1;m++){
printf(" ");
}
printf("***\n");
}
}