본문 바로가기
[C++] 알고리즘 교육/1~4. 기본기

[알고리즘 2.2.8] 배열 - 숫자피라미드

by 안산학생 2019. 4. 23.

문제

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

3 456 21987 3456789 987654321

가 된다.

 

입력

입력의 첫 번째 줄에 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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
#include <stdio.h>
 
int main() {
 
  int n,s;
  int y=0;
  int i,j,z, su=0;
  
  // 0 이면 역방향, 1 이면 정방향
  int sw=0;
  
  scanf("%d %d"&n, &s);
  
  y = n * 2 -1;
  
  int arr[n][y];
 
 
  for(i=0;i<n;i++){
    for(j=0;j<=su;j++){
      if(s>9){
        s = 1;
      }
      arr[i][j] = s;
      s++;
    }
    su= su+2;
  }
  
  
  su = 0;
  for(i=0;i<n;i++){
    for(j=n-i-1;j>0;j--){
      printf(" ");
    }
    
    if(sw == 1){
      for(j=0;j<=su;j++){
        printf("%d", arr[i][j]);
      }
      sw = 0;
    }else{
      for(j=su;j>=0;j--){
        printf("%d", arr[i][j]);
      }
      sw = 1;
    }
    
 
    
    
    printf("\n");
    su= su+2;
  }
 
  return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4f; text-decoration:none">Colored by Color Scripter

댓글