#include <stdio.h>
void tree(int a){
for(int i = 0;i<a;i++){
for(int j = 0;j<3*a-1-3*i;j++){ //根据层数,打出左边不同的空格数
printf(" ");
}
for(int k = 0;k<=i;k++){ //观察得出*后面5个空格在哪一层都是这种形式
printf("* ");
}
printf("\n");
for(int j = 0;j<3*a-2-3*i;j++){
printf(" ");
}
for(int k = 0;k<=i;k++){
printf("* * ");
}
printf("\n");
for(int j = 0;j<a*3-3-3*i;j++){
printf(" ");
}
for(int k = 0;k<=i;k++){
printf("* * * ");
}
printf("\n");
}
}
void root(int a){
for(int i = 0;i<a;i++){
for(int j = 0;j<a*3*2-1;j++){
if( j == (a*3*2-1)/2){
printf("*\n");
break;
}
else{
printf(" ");
}
}
}
}
int main(){
int h;
scanf("%d",&h);
tree(h);
root(h);
return 0;
}
妙哉妙哉 做了这么多道循环打图案的题目。解题的关键就在于怎么找出规律。所以我将圣诞树分解成两部分(开始是三部分,但做不出来,后面又是参考了一波大佬的解题,实在膜拜!)