본문 바로가기
알고리즘 교육/2. 다중 반복문&배열

숫자 피라미드

by 곰제비 2022. 7. 21.
문제

N과 시작 숫자 S가 주어지면 숫자 피라미드를 만드는 프로그램을 작성하시오.
예를 들어, N이 5이고 S가 3 이라면, 그 숫자 피라미드는 다음과 같다.

        3

      456

    21987

  3456789
987654321

  • 시작 숫자 S는 꼭대기부터 1씩 증가한다.
  • 시작 행의 번호가 1번이라고 했을때, 짝수번째 행은 왼쪽에서 오른쪽으로 1씩 증가하도록 적고, 홀수번째 행은 거꾸로 적는다.
  • 숫자가 만약 10이 될 경우, 1로 바꾸고 다시 증가한다.

 

입력

입력의 첫 번째 줄에 N과 시작 숫자 S가 주어진다. (1<= N <=100, 1<= S <= 9)

 

출력

첫 번째 줄부터 숫자 피라미드를 출력한다.

 

예제 입력

5 3

 

예제 출력

        3
      456
    21987
  3456789
987654321

 

전체 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#include <iostream>
 
using namespace std;
 
int main() 
{
  int n,s,num[10001]={0,};
  cin >> n >> s;
  
  for(int i=1; i<=n; i++){
    for(int j=i; j<=n-1; j++)
      cout << ' ';
    if(i%2 == 1){
      for(int j=1; j<=2*i-1; j++){
        num[j] = s;
        s++;
        if(s==10)
          s=1;
      }
      for(int k=2*i-1; k>=1; k--)
        cout << num[k];
    }
    else{
      for(int j=1; j<=2*i-1; j++){
        cout << s;
        s++;
        if(s==10)
          s=1;
      }
    }
    cout << '\n';
  }
}
cs

'알고리즘 교육 > 2. 다중 반복문&배열' 카테고리의 다른 글

card game  (0) 2022.07.21
주사위 게임  (0) 2022.07.21
소수 판별 2  (0) 2022.07.20
삼각형 출력 3  (0) 2022.07.20
삼각형 출력 1  (0) 2022.07.20