코드 사본은 다음과 같습니다.
/*자바
*저자 : 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 1
*콘솔 출력의 결함은 숫자를 완전히 중심으로 할 수 없으며 오른쪽 또는 왼쪽에만 가능하다는 것입니다.
*/
공개 클래스 번호 피라미드 {
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] = 숫자 [i-1] * baseNumber;
}
// 각 숫자를 차지하는 문자 수를 계산합니다 : 최대 숫자 + 2
int columnsperNumber =
String.valueof (숫자 [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", 숫자 [k]);
// 출력 {2^n-1, ..., 8,4,2,1}
for (int m = 0; m <i; m ++)
System.out.printf ( "%"+columnsperNumber+"d", 숫자 [IM-1]);
//이기다
System.out.println ();
}
}
}