알고리즘/BOJ
백준 6679번: 싱기한 네자리 숫자
대 혁
2020. 4. 28. 01:41
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
내일도 열심히!