A cópia do código é a seguinte:
/*Java
*Autor: Nealfeng em Oschina.net
*Licença: GPLV2+
*Tempo: 2014/1/17
*
*Saída pirâmide digital no console:
* 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
*O defeito da saída do console é que os números não podem ser completamente centrados e só podem estar à direita ou à esquerda.
*/
classe pública NumberPyramid {
public static void main (string [] args) {
// Número de linhas
lineNumber int = 5;
// base
int basenNumber = 2;
// gera números, e os números são salvos na matriz {1,2,4,8, ..., 2^n}
int [] números = new int [linenumber];
números [0] = 1;
for (int i = 1; i <lineNumber; i ++) {
números [i] = números [i-1] * BasenNumber;
}
// Calcule quantos caracteres cada número ocupa: o número máximo de dígitos + 2
int colunnsperNumber =
String.valueof (números [lineNumber-1]). Comprimento () + 2;
// Saída, o formato de saída é o seguinte:
// cada indent = colunnsperNumber Spaces
// Cada largura do número é colunnsperNumber
// Isso formará uma forma de pirâmide
// Recado de recuo de recuo de recuo -recuo número
// recuo de recuo em números digitais
// dígitos recuados dígitos
// números digitais
for (int i = 0; i <lineNumber; i ++) {
// recuo de saída
for (int j = 0; j <linenumber-i-1; j ++)
System.out.printf ("%"+colunsperNumber+"s", "");
// Número de saída
// saída {1,2,4,8, ..., 2^n}
for (int k = 0; k <i+1; k ++)
System.out.printf ("%"+colunsperNumber+"d", números [k]);
// saída {2^n-1, ..., 8,4,2,1}
for (int m = 0; m <i; m ++)
System.out.printf ("%"+colunsperNumber+"d", números [im-1]);
//Ganhar
System.out.println ();
}
}
}