用JAVA打印出棱形

public class Test {
   public static void main(String[] args) {
       //输入行数
       print(5);
   }
   public static void print(int sum)
   {
       int number=0;
       for(int i=1;i<=sum;i++)
       {
           int emptyNumber=sum-i;//计算空格数  经过计算是     总行数-行数
           int starNumber=2*i-1;//计算星数,  经过计算是       2倍的行数-1
           if(i==sum)
           {
               number=i+starNumber;//保存一个总数,用于后面的倒着输出用
           }
           for(int z=0;z<emptyNumber;z++)//遍历输出,得到一个三角形
           {
            System.out.print(" ");
           }
           for (int j = 0; j < starNumber; j++) {
               System.out.print("*");
        }
           System.out.println();
       }
       //开始输出下面的一部分
       int newrow=sum+1;//计算开始的行数
       int sumrow=2*sum-1;//计算新总行数
       for(int i=newrow;i<=sumrow;i++)
       {
           int emptyNumber=i-sum;//计算空格数,经过计算是 当前行数-旧的总行数
         //计算星数,经过计算  星数+空格数+行数=number,也就是最大三角形的星数+它的行数
           int starNumber=number-i-emptyNumber;
           //遍历输出
           for(int z=0;z<emptyNumber;z++)
           {
            System.out.print(" ");
           }
           for (int j = 0; j < starNumber; j++) {
               System.out.print("*");
        }
           System.out.println();
       }
        
    }
  
   }
   

结果图:

原文地址:https://www.cnblogs.com/hckblogs/p/7747179.html