#include<stdio.h> int main() { int n = 0; while (~scanf("%d", &n)) { //先打印树叶部分 //行循环,每次循环打印一行的内容 for (int i = 1, group = 0; i <= 3*n; i++) { //每循环三行增加一次打点的组数 if (i % 3 == 1) group++; //先打印前部空格 for (int j = 3*n - i; j > 0; j--) { printf(" "); } //打印点,将顶点腰部和底部分为三种情况,分别打印group组 for (int k = 0; k < group; k++) { //顶点 if (i % 3 == 1) printf(k == 0 ? "*" : "%6c", '*'); //腰部(两个点) else if (i % 3 == 2) printf(k == 0 ? "* *" : " * *"); //底部(三点) else printf("* * * "); } //每行内容打印完毕换行 printf("\n"); } //打印树干 for (int i = 0; i < n; i++) { printf("%*c\n", 3*n, '*'); } } return 0; }