Java金字塔及变形

Java金字塔

package com.tfj.test;
public class JinZiTa {
public static void main(String[] args){
    int num=4;
    for(int i=0;i<num;i++){
//      找出空格规律
        for(int j=1;j<num-i;j++)
    System.out.print(" ");
//        找出*规律
      for(int k=0;k<2*i+1;k++){
    System.out.print("*");
      }
    System.out.println();
    }
}
}

运行结果如图:


Java金字塔变形1:

package com.tfj.test;
public class JinZiTa2 {
public static void main(String[] args){
    int num=4;
    for(int i=0;i<num;i++){
     for(int j=1;j<num-i;j++)
     System.out.print(" ");
//  方法1:特殊处理金字塔里面空心的
//          for(int k=0;k<2*i+1;k++){
//       if(i>0&&i<num-1&&k>0&&k<2*i){
//           System.out.print(" ");
//       }
//       else{
//     System.out.print("*");
//      }
//     }
//     方法2:先处理第一层和最后一层,然后处理中间的num-2层
     for(int k=0;k<2*i+1;k++){
         if(i==0||i==num-1){
             System.out.print("*");
         }else{
             if(k==0||k==2*i){
                 System.out.print("*");
             }else{
                 System.out.print(" ");
             }
         }
     }
     System.out.println();
    }
}
}

运行结果如图:



Java金字塔变形2:

package com.tfj.test;
public class JinZiTa3 {
public static void main(String[] args){
    int num=4;
    for(int i=0;i<num;i++){
     for(int j=1;j<num-i;j++)
     System.out.print(" ");
          for(int k=0;k<2*i+1;k++){
       if(i>0&&i<num&&k>0&&k<2*i){
           System.out.print(" ");
       }
       else{
     System.out.print("*");
      }
     }
     System.out.println();
    }
//    将上面的进行倒置,然后稍加处理
    for(int i=num-1;i>0;i--){
         for(int j=num-i;j>0;j--)
         System.out.print(" ");
              for(int k=2*i-1;k>0;k--){
           if(i>0&&i<num&&k>1&&k<2*i-1){
               System.out.print(" ");
           }
           else{
         System.out.print("*");
          }
         }
         System.out.println();
        }
}
}

运行结果如图:


 

原文地址:https://www.cnblogs.com/tufujie/p/4854242.html