본문 바로가기
study/Java

[Java] 17. TEST7 풀이 (홀수를 입력하고 숫자로 이루어진 모래시계 출력하기)

by 금이패런츠 2022. 3. 16.
728x90
반응형
package chap5;
/*
[결과]
배열의 크기를 홀수로 입력하세요
5

17	16	15	14	13	
 	12	11	10	 	
 	 	9	 	 	
 	8	7	6	 	
5	4	3	2	1

(5 + 3 + 1) * 2 - 1 = 17
(3 + 1) * 2 - 1 = 7
 */

import java.util.Scanner;

public class Test0308_7 {
	public static void main(String[] args) {
    
		Scanner scan = new Scanner(System.in);
		System.out.println("배열의 크기를 홀수로 입력하세요");
		int num = scan.nextInt();
		int[][] matrix = new int[num][num];
		int sum = 0; 
		for(int i=1;i<=num;i+=2) sum += i;
		int data = sum * 2 - 1; //시작하는 숫자 
		//matrix 배열에 데이터 저장
		for(int i=0;i<= matrix.length/2;i++) {
			for(int j=i;j<matrix.length-i;j++) {
				matrix[i][j] = data--;
			}		}
		for(int i=matrix.length/2+1;i< matrix.length;i++) {
			for(int j=matrix.length - i - 1;j<=i;j++) {
				matrix[i][j] = data--;
			}	}
		//matric 배열의 값을 출력
		for(int i=0;i<matrix.length;i++) {
			for(int j=0;j<matrix[i].length;j++) {
				if(matrix[i][j] == 0)
					System.out.print("    ");
				else
				    System.out.printf("%4d",matrix[i][j]);
			}
			System.out.println();
		}
	}
}
728x90
반응형