Java console output digital pyramid sample share
- 2020-04-01 02:47:07
- OfStack
/*Java
*Author: NealFeng at oschina.net
*License: GPLv2+
*Time: 2014/1/17
*
* In the console The output of digital The pyramid:
* 1
* 1 2 1
* 1 2 4 2 1
* 1 2 4 8 4 2 1
* 1 2 4 8 16 8 4 2 1
* The downside of console output is that the Numbers cannot be completely centered and can only be right-aligned or left-aligned
*/
public class NumberPyramid {
public static void main(String[] args) {
//The number of rows
int lineNumber = 5;
//base
int baseNumber = 2;
//Generate the number, the number is saved in the array {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;
}
//Calculate how many characters are in each number: the largest number of digits +2
int columnsPerNumber =
String.valueOf(numbers[lineNumber-1]).length() + 2;
//Output, the output format is as follows:
//Each indent = columnsPerNumber of Spaces
//Each number is columnsPerNumber in width
//This will form a pyramid
//Indent indent number
//Indent number number number
//Number number number number number number number
//Numbers Numbers Numbers Numbers Numbers Numbers Numbers & NBSP; digital
for(int i = 0; i < lineNumber; i++) {
//Output the indentation
for(int j = 0; j < lineNumber-i-1; j++)
System.out.printf("%"+columnsPerNumber+"s", " ");
//The output of digital
//Output {1,2,4,8,... , 2 ^ n}
for(int k = 0; k < i+1; k++)
System.out.printf("%"+columnsPerNumber+"d", numbers[k]);
//Output {2 ^ n - 1,... 8,4,2,1},
for(int m = 0; m < i; m++)
System.out.printf("%"+columnsPerNumber+"d", numbers[i-m-1]);
//A newline
System.out.println();
}
}
}