어떻게 보면 단순하게 구현 할 수 도 있는 것을 너무 골머리 싸맨듯 합니다.
비슷한 문제가 전자계산기 기사 시험에도 나오는듯 하는데 그것은 배열을
이용하여 하는것 같던데 이것은 순수하게 출력 구문으로만 구성 된 것입니다.
혹시라도 이런 문제에 봉착하신분들께 도움이 될지 도 몰라서 게시 해 봅니다.
아래의 예 처럼 출력 됩니다.
1 2 3 4 5
6 7 8
9
10 11 12
13 14 15 16 17
public class NumPrint3 { // 모래시계 처럼 누적된 숫자 출력하는 클래스
public static void main(String[] args) {
numPrint(7);
}
static void numPrint(final int MAXDEPTH) {
int sum = 1;
for (int i = 0 ; i < MAXDEPTH ; i++) {
for (int j = 0 ; j < i ; j++)
System.out.print(" ");
for (int j = 0 ; j < (MAXDEPTH+(MAXDEPTH-1))-(2*i) ; j++) {
System.out.printf("%3d", sum);
sum++;
}
for (int j = 0 ; j < i ; j++)
System.out.print(" ");
System.out.println();
}
for (int i = MAXDEPTH-1 ; i > 0 ; i--) {
for (int j = 0 ; j < i-1 ; j++)
System.out.print(" ");
for (int j = (MAXDEPTH+(MAXDEPTH-1)) ; j > (i-1)*2 ; j--) {
System.out.printf("%3d", sum);
sum++;
}
for (int j = 0 ; j < i ; j++)
System.out.print(" ");
System.out.println();
}
}
}
비슷한 문제가 전자계산기 기사 시험에도 나오는듯 하는데 그것은 배열을
이용하여 하는것 같던데 이것은 순수하게 출력 구문으로만 구성 된 것입니다.
혹시라도 이런 문제에 봉착하신분들께 도움이 될지 도 몰라서 게시 해 봅니다.
아래의 예 처럼 출력 됩니다.
1 2 3 4 5
6 7 8
9
10 11 12
13 14 15 16 17
public class NumPrint3 { // 모래시계 처럼 누적된 숫자 출력하는 클래스
public static void main(String[] args) {
numPrint(7);
}
static void numPrint(final int MAXDEPTH) {
int sum = 1;
for (int i = 0 ; i < MAXDEPTH ; i++) {
for (int j = 0 ; j < i ; j++)
System.out.print(" ");
for (int j = 0 ; j < (MAXDEPTH+(MAXDEPTH-1))-(2*i) ; j++) {
System.out.printf("%3d", sum);
sum++;
}
for (int j = 0 ; j < i ; j++)
System.out.print(" ");
System.out.println();
}
for (int i = MAXDEPTH-1 ; i > 0 ; i--) {
for (int j = 0 ; j < i-1 ; j++)
System.out.print(" ");
for (int j = (MAXDEPTH+(MAXDEPTH-1)) ; j > (i-1)*2 ; j--) {
System.out.printf("%3d", sum);
sum++;
}
for (int j = 0 ; j < i ; j++)
System.out.print(" ");
System.out.println();
}
}
}
'프로그래밍 > 자바 연습 소스' 카테고리의 다른 글
JAVA Script - 숫자 1000 단위로 , 찍는 소스 (0) | 2010.11.10 |
---|---|
오른쪽 부터 왼쪽으로 1+2+3+4 ... 증가하여 계단식으로 출력하는 소스 for Java (0) | 2010.08.16 |