天天看點

python輸出數字金字塔_java如何編寫數字金字塔

public class NumberPyramid {

public static void main(String[] args) {

// 行數

int lineNumber = 5;

// 基數

int baseNumber = 2;

// 生成數字,數字儲存在數組中{1,2,4,8,...,2^n}

int[] numbers = new int[lineNumber];

numbers[0]=1;

for(int i = 1; i < lineNumber; i++) {

numbers[i] = numbers[i-1] * baseNumber;

}

// 計算每個數字占幾個字元:最大的數字位數+2

int columnsPerNumber =

String.valueOf(numbers[lineNumber-1]).length() + 2;

// 輸出,輸出格式如下:

// 每個縮進 = columnsPerNumber個空格

// 每個數字寬度為columnsPerNumber

// 這樣就可以形成金字塔狀

// 縮進 縮進 縮進 數字

// 縮進 縮進 數字 數字 數字

// 縮進 數字 數字 數字 數字 數字

// 數字 數字 數字 數字 數字 數字 數字

for(int i = 0; i < lineNumber; i++) {

//輸出縮進

for(int j = 0; j < lineNumber-i-1; j++)

System.out.printf("%"+columnsPerNumber+"s", " ");

//輸出數字

//輸出{1,2,4,8,...,2^n}

for(int k = 0; k < i+1; k++)

System.out.printf("%"+columnsPerNumber+"d", numbers[k]);

//輸出{2^n-1,...,8,4,2,1}

for(int m = 0; m < i; m++)

System.out.printf("%"+columnsPerNumber+"d", numbers[i-m-1]);

//換行

System.out.println();

}

}

}