알고리즘/BOJ(C++)

[BOJ] 6679 :: 싱기한 네자리 숫자

쿠마쿠마34 2018. 6. 2. 21:26
반응형

https://www.acmicpc.net/problem/6679


입력은 없습니다.

1000부터 9999까지 해당 조건을 만족하는 숫자를 모두 출력하면 되는 문제입니다.


해당 조건은 10진수로 바꿨을 때 각 자리수의 합 == 12진수로 했을 때 모든 자리 수의 합 == 16진수로 했을 때 모든 자리 수의 합입니다.


각 숫자를 진법 변환해주는 과정만 구현하면 아주 쉬운 문제입니다.


저는 %연산을 통해 자리수를 확인한 후 진수로 나누어 0이 되기 전까지 각 자리를 확인해 주었습니다.


#include <iostream>
using namespace std;
int main()
{
for(int i = 1000; i < 10000 ; i++)
{
int a = 0;
int j = i;
while (j != 0)
{
a += j % 10;
j /= 10;
}
int b = 0;
int k = i;
while (k != 0)
{
b += k % 12;
k /= 12;
}
int c = 0;
int l = i;
while (l != 0)
{
c += l % 16;
l /= 16;
}
if (a == b && b == c)
cout << i << endl;
}
}

댓글로 질문해주세요 :)


반응형