题解 | #圣诞树#
圣诞树
https://www.nowcoder.com/practice/9a03096ed8ab449e9b10b0466de29eb2
import java.util.Scanner;
public class Chkis {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n=sc.nextInt(); //输入树的大小
Three.function(n);
}
}
class Three{
public static void f(int m) {//封装输出空格的方法
for(int j=0;j<=m;j++)
System.out.printf(" ");
}
public static void function(int n) {
int s=n;
int tab=3*s-1; //首行第一个*的空格数,其余行为tab--
int temp=3; //中间每个三角形之间的空格数
for(int m=1;m<=n;m++) {//【外循环:三角形行数】 (以完整三角形为一行 即三行为一行)
temp=3;
for(int i=1;i<=3;i++) {//【内循环:每个三角形分三行】
f(tab);
tab--;
for(int k=0;k<m;k++) {//【单行上三角形数】一行有几个三角形 由外循环计数器m确定 第m行有m个
for(int j=0;j<i;j++) {//【单行上星星数】 i:三角形的第几行 输出时第1行则* 第2行**
System.out.printf("* ");}
f(temp);}//行内每个三角形间空格
temp-=2;//每两行三角形间空格数差2
System.out.println("");//输出一行后 再换行
}
}
int t=3*n;//树干
for(int i=0;i<n;i++) {
f(t-1);
System.out.println("*");}
}
}
查看5道真题和解析