[백준/C++] Q6679. 싱기한 네자리 숫자
문제
싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서, 다음의 조건을 만족하는 숫자를 말한다.
- 숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 때, 세 값이 모두 같아야 한다.
여러분은 싱기한 네자리 숫자를 모두 출력해야 한다.
입력입력은 주어지지 않는다.
출력싱기한 네자리 숫자를 오름차순으로 한줄에 하나씩 출력한다.
숫자의 10진수, 12진수, 16진수 자리수의 합을 나타내는 sum 변수를 3개 두어
마지막에 세 숫자가 같은지 확인하는 방법을 사용하였다.
관련 개념
- 진법: 기수법 중 하나, 임의의 숫자를 이용하여 가중치를 두어 표현하는 방법.
- 진수: 진법으로 나타낸 수. 숫자의 우측 하단에 조그맣게 (진법) 을 표시한다.
10진수
통상 사용하는 수로, 1~9를 이용해 숫자를 표기함
ex. 999 = 9x10^2 + 9x10^1 + 9x10^0
12진수
1~9, A~C를 이용해 숫자를 표기함
ex. 9A9(12) = 9x12^2 + 10x12^1 + 9x12^0
16진수
1~9, A~F를 이용해 숫자를 표기함
ex. 9E9(16) = 9x16^2 + 14x16^1 + 9x16^0
진수 변환
모든 진수 변환은 10진수를 거쳐서 해야 한다.
ex. 2진수를 16진수로 변환: 2진수 → 10진수 → 16진수
10101(2) = 1x2^4 + 0x2^3 + + 1x2^2 + 0x2^1 + 1x2^0 = 21
21 = 15(16) = 1x16^1 + 5x16^0
이므로 10101(2) = 15(16)
'Algorithm' 카테고리의 다른 글
[백준/Python] Q20920. 영단어 암기는 괴로워 (0) | 2021.02.23 |
---|---|
[백준/Python] Q10941. BASE16 디코딩 (0) | 2020.11.23 |
[백준/C++] Q15552. 빠른 A+B (0) | 2020.11.23 |
[백준/C] Q9610. 사분면 (0) | 2020.11.23 |