mang_dev
맹꽁거리는 개발자
mang_dev
전체 방문자
오늘
어제
  • 분류 전체보기 (185)
    • Frontend (2)
      • Next.js (1)
    • Backend (3)
      • GraphQL (2)
    • Book (1)
      • 기타 (1)
    • Old (177)
      • 알고리즘 퍼즐 (1)
      • 백준 (131)
      • 프로그래머스 (0)
      • Codility (15)
      • LeetCode (7)
      • Codewars (1)
      • Codeforces (0)
      • Django (6)
      • React (2)
      • Naver Map Api (3)
      • Web UI (4)
      • Introduction to Cloud (2)
hELLO · Designed By 정상우.
mang_dev

맹꽁거리는 개발자

백준 6679번 싱기한 네자리 숫자 // C++
Old/백준

백준 6679번 싱기한 네자리 숫자 // C++

2020. 2. 17. 20:06

문제

 

싱기한 네자리 숫자란, [1000,9999]인 10진수 숫자중에서,  다음의 조건을 만족하는 숫자를 말한다.

  • 숫자를 10진수, 12진수, 16진수로 나타낸 다음, 각각의 숫자에 대해, 각 숫자의 자리수를 더했을 때, 세 값이 모두 같아야 한다.

여러분은 싱기한 네자리 숫자를 모두 출력해야 한다.

입력

입력은 주어지지 않는다.

출력

싱기한 네자리 숫자를 오름차순으로 한줄에 하나씩 출력한다.

 


 

풀이

 

10진법의 수 N을 x진법의 수로 나타내기 위해서는, N을 x로 나눴을 때의 나머지를 쭉 적다가 x보다 작아졌을 때 모두 합쳐서 적으면 된다.

 

예를 들어 문제의 2992를 12진법으로 변환할 때는 다음과 같이 연산을 수행하면 된다.

 

이처럼 수를 각각 10진수, 12진수, 16진수로 변환했을 때의 자리 수의 합이 같은 경우 출력을 하면 된다.

 

제일 작은 싱기한 네자리 숫자는 2992이니까 거기서부터 for문을 돌면 된다.


 

코드

더보기
#include <iostream>

using namespace std;

int to_10(int num);
int to_12(int num);
int to_16(int num);

int main() {
	for (int i = 2992; i <= 9999; i++) {
		if (to_10(i) == to_12(i) && to_12(i) == to_16(i))
			printf("%d\n", i);
	}
}

int to_10(int num) {
	int res = 0;

	while (num >= 10) {
		res += num % 10;
		num /= 10;
	}

	res += num % 10;

	return res;
}

int to_12(int num) {
	int res = 0;

	while (num >= 12) {
		res += num % 12;
		num /= 12;
	}

	res += num % 12;

	return res;
}

int to_16(int num) {
	int res = 0;

	while (num >= 16) {
		res += num % 16;
		num /= 16;
	}

	res += num % 16;
	
	return res;
}
저작자표시 (새창열림)

'Old > 백준' 카테고리의 다른 글

백준 15685번 드래곤 커브 // C++  (0) 2020.02.17
백준 6603번 로또 // C++  (0) 2020.02.17
백준 4690번 완전 세제곱 // C++  (0) 2020.02.17
백준 1620번 나는야 포켓몬 마스터 이다솜 // C++  (0) 2020.02.16
백준 1764번 듣보잡 // C++  (0) 2020.02.16
    'Old/백준' 카테고리의 다른 글
    • 백준 15685번 드래곤 커브 // C++
    • 백준 6603번 로또 // C++
    • 백준 4690번 완전 세제곱 // C++
    • 백준 1620번 나는야 포켓몬 마스터 이다솜 // C++
    mang_dev
    mang_dev

    티스토리툴바