알고리즘 교육/2. 다중 반복문&배열
숫자 피라미드
곰제비
2022. 7. 21. 00:45
문제
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 |