コードコピーは次のとおりです。
/*Java
*著者:oschina.netのnealfeng
*ライセンス:gplv2+
*時間:2014/1/17
*
*コンソールにデジタルピラミッドを出力:
* 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
*コンソール出力の欠陥は、数値を完全に中心にすることができず、右または左にのみしかできないことです。
*/
パブリッククラスNumberPyramid {
public static void main(string [] args){
//行数
int linenumber = 5;
//ベース
int basenumber = 2;
//番号を生成すると、数値が配列に保存されます{1,2,4,8、...、2^n}
int [] numbers = new int [linenumber];
数字[0] = 1;
for(int i = 1; i <linenumber; i ++){
数字[i] = numbers [i-1] * basenumber;
}
//各数字が占める文字の数を計算します:最大数桁 + 2
int columnSperNumber =
string.valueof(numbers [linenumber-1])。length() + 2;
//出力、出力形式は次のとおりです。
//各indent = 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]);
// output {2^n-1、...、8,4,2,1}
for(int m = 0; m <i; m ++)
System.out.printf( "%"+columnSperNumber+"d"、numbers [im-1]);
//勝つ
System.out.println();
}
}
}