[문제 링크]

 

6679번: 싱기한 네자리 숫자

문제 싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서,  다음의 조건을 만족하는 숫자를 말한다. 숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 때, 세 값이 모두 같아야 한다. 여러분은 싱기한 네자리 숫자를 모두 출력해야 한다. 입력 입력은 주어지지 않는다. 출력 싱기한 네자리 숫자를 오름차순으로 한줄에 하나씩 출력한다. 예제 입력 1 복사 예제 출력 1 복사 2992 2993 29

www.acmicpc.net


매우 쉬운 버전의 완전탐색 문제이다. 1000~9999까지 모든 숫자에 대해서 10진수, 12진수, 16진수 각 자리수를 다 더했을 때 값이 일치하는 숫자를 출력해주면 된다.


#include <iostream>
using namespace std;
 
int main(void)
{
    for (int i = 1000; i < 10000; i++)
    {
        int temp = i;
        int decSum = 0, sum = 0;
        while (temp / 10 != 0)
        {
            decSum += temp % 10;
            temp /= 10;
        }
        decSum += temp;
        temp = i;
        while (temp / 12 != 0)
        {
            sum += temp % 12;
            temp /= 12;
        }
        sum += temp;
        if (decSum != sum) continue;
        temp = i;
        sum = 0;
        while (temp / 16 != 0)
        {
            sum += temp % 16;
            temp /= 16;
        }
        sum += temp;
        if (decSum != sum) continue;
        cout << i << endl;
    }
    return 0;
}
http://colorscripter.com/info#e" target="_blank" style="color:#e5e5e5text-decoration:none">Colored by Color Scripter

알고리즘 200일 프로젝트 - 22day

내일도 열심히!

 

'알고리즘 > BOJ' 카테고리의 다른 글

백준 2981번: 검문  (0) 2020.04.30
백준 1062번: 가르침  (0) 2020.04.29
백준 1074번: 게임  (0) 2020.04.28
백준 7453번: 합이 0인 네 정수  (0) 2020.04.26
백준 1038번: 감소하는 수  (0) 2020.04.25

+ Recent posts