java 數字金字塔,含詳細解說

魚鰾。發表於2020-12-11
/*
    需求:數字金字塔      第i行  空格數量     左邊的數字     右邊的數字
    |    1    |        i==1     3個        1到1          0(沒有數字)
    |   121   |        i==2     2個        1到2          1到1
    |  12321  |        i==3     1個        1到3          2到1
    | 1234321 |        i==4     0個        1到4          3到1
 */
import java.util.Scanner;
public class JinZiTa {
    public static void main(String[] args){
        Scanner input=new Scanner(System.in);
        System.out.print("請輸入你總共要多少行:");
        int line=input.nextInt();        //i是會變的迴圈變數,line是我們輸入的總行數;  兩個變數所表示的內容(值)是不同的!!
        int i,j;                         //j是小迴圈內的變數,更會變!隨著for迴圈括號內的條件進行變化!
        for(i=1;i<=line;i++){            //用line控制輸入的行數
            for(j=1;j<=line-i;j++){      //用空格佔位,空格數j==輸入的行數line-i變數   輸入4行(line),空格數=(4-1)=3  |  輸入5行(line),空格數=(5-1)=4
                System.out.print(" ");
            }
            for(j=1;j<=i;j++){           //這裡的j是左邊的數字,從規律中看到:i等於多少,j就是多少,所以j<=i
                System.out.print(j);
            }
            for(j=i-1;j>=1;j--){         //這裡的j是右邊的數字,這裡的j的初始值不同,終點判定條件也不同,for迴圈括號內的變化量用的是【遞減】
                System.out.print(j);     //當i在第一行,(i==1),j==0==(i-1);            變化量:j--;
            }                            //當i在第二行,(i==2),j==2-1==1==(i-1);       變化量:j--;
            System.out.println();        //當i在第三行,(i==3),j==3-1==2-1==1==(i-1);  變化量:j--;
        }                                //當i在第四行,(i==4),j==4-1==3-1==2-1==(i-1);變化量:j--;
    }
}

輸出的內容如下:

請輸入你總共要多少行:5
    1
   121
  12321
 1234321
123454321

相關文章