코딩항해기

[과제/코드업/JAVA] 1362 : 숫자 피라미드 3 본문

problem solving/과제&실습 코딩

[과제/코드업/JAVA] 1362 : 숫자 피라미드 3

miniBcake 2024. 6. 29. 14:04

 

 

[문제]

길이 n이 입력되면 다음과 같은 숫자 피라미드를 출력한다.

예) n이 5이면

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

 

[디버깅표]

입력값이 짝수라면 +1 아니라면 하지 않음

i i<5 j ??? j <=i  j출력값  
0 T 0 T 15 피라미드 상위값--
    1 F    
1 T 0 T 14  
    1 T 13  
    2 F    
2 T 0 T 12  
    1 T 11  
    2 T 10  
    3 F    
3 T 0 T 9  
    1 T 8  
    2 T 7  
    3 T 6  
    4 F    
4 T 0 T 5  
    1 T 4  
    2 T 3  
    3 T 2  
    4 T 1  
    5 F    
5 F        

 

[코드]

package home0629;

import java.util.Scanner;

//길이 n이 입력되면 다음과 같은 숫자 피라미드를 출력한다.
//
//예) n이 5이면
//
//15
//14	13
//12	11	10
//9	8	7	6
//5	4	3	2	1 

public class Homework01 {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		System.out.println("입력한 숫자로 숫자 피라미드를 만드는 프로그램입니다.");
		
		int num; //입력값
		int result; //피라미드 꼭대기 값
		int cum = 0; //i누적값
		
		while(true) {
			System.out.print("정수 입력 >> ");
			num = sc.nextInt();
			if(num > 0) {
				break;
			}
			System.out.println("음수는 불가능합니다.");
		}
		
		//만약 짝수라면 *3연산에 +1 아니라면 *3연산만
		result = num*(num+1)/2;
		
		for(int i=0;i<num;i++) {
			cum += i;
			for(int j=0;j<=i;j++) {
				System.out.print(result+"\t");
				result--;
			}
			System.out.println();
		}
		
		
	}
}

 

반복문 조건은 쉽게 찾았지만 출력에 들어갈 숫자 구하는게 오래 걸렸는데..

찾아보니 생각보다 간단한 방식이라 너무 어렵게 생각하지 않을 필요가 있을 것 같다....