#include <stdio.h> //重点:发现排列规律 //思路: //把圣诞树每三层分为一个循环 //第n个循环的第一层打印n次“*.....”第二层打印n次“*.*...”第三次打印n次“*.*.*.” //并在每次打印前把空格打印出来 //最后打印圣诞树干 int main() { int h,num=1; scanf("%d",&h); for(int i=1;i<=h;i++)//最外层每打印三层记一次数 { for(int t=num;t<=i*3;t++) //num记录当前层数,这里确保每打印完三次跳出循环,然后外面大循环i+1 { for(int k=h*3-1;k>=num;k--)//打印每层前的“ ” { printf(" "); } if(t%3==1)//判断是否为小三角形的第一层 { for(int m=0;m<i;m++) { printf("* "); } printf("\n"); } if(t%3==2) { for(int m=0;m<i;m++) { printf("* * "); } printf("\n"); } if(t%3==0) { for(int m=0;m<i;m++) { printf("* * * "); } printf("\n"); } num++; } } for(int n=0;n<h;n++)//打印树干 { for(int g=0;g<h*3-1;g++) { printf(" "); } printf("*\n"); } return 0; }