题解 | #圣诞树#

圣诞树

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("*");}
	  }	
}

全部评论

相关推荐

点赞 收藏 评论
分享
牛客网
牛客企业服务