1 2 3 4 5 6 7 8 9



입력10


출력1 2 - 4 5 - 7 8 - 10


3, 6, 9 가 들어가있으면 박수대신 "-" 표시를 출력한다. 이때, 333 이라는 숫자가 들어오면 --- 으로 출력된다.


해결방법)


n이 입력되면

1부터 n까지 주어지는 상황에서

각 숫자 자리마다 3,6,9가 있는지 확인한 후 있으면 있는만큼 "-"출력한다. 없으면 원래 숫자를 출력한다.


여기서 각 숫자마다 자리를 나눠서 확인을 해줘야하는데 10으로 계속 나눠주면서 몫이 0일때 까지 반복한다.

그래서 반복마다 생겨나는 나머지가 각 자리수이기 때문에 이 자리수가 3,6,9인지를 확인해 주었다.

예시) 245 / 10 = 24,  245 % 10 = 5(일의자리수 추출)  -> 24/10 = 2, 24%10 = 4(십의자리수 추출) -> 2/10= 0, 2%10 = 2(백의자리수 추출)


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
#include<iostream>
using namespace std;
int main()
{
    int n;
    int num;
    int mok;
    int obj; // 나누는 대상
    int r; // 나머지값
    bool flag = 0//1로 켜지면 3,6,9가 하나라도 있었다라는것 
    cin >> n;
    for(int num = 1; num<=n; num++)
    {
        obj = num;
        flag = 0;
        do
        {
            r = obj % 10;
            if(r == 3 || r == 6 || r == 9)
            {
                flag = 1;
                printf("-");
            }
            mok = obj/10;
            obj = mok;
        }while(mok!=0);
        if(flag == 1)
        {
            printf(" ");
            continue;
        }
        printf("%d ",num);
    }
}
cs


반응형

'PS > SWEA' 카테고리의 다른 글

2007번 패턴 마디의 길이  (0) 2018.10.16
1859번 백만 장자 프로젝트  (0) 2018.10.13
5550번 나는 개구리로소이다  (0) 2018.10.06
1868번 파핑파핑 지뢰찾기  (0) 2018.09.30
SWEA - 혜리의 숫자 나누기  (0) 2018.09.23

+ Recent posts