초고교급 희망

[백준][C++] 4673번 셀프 넘버 본문

Algorithm/Baekjoon

[백준][C++] 4673번 셀프 넘버

연모링 2021. 6. 30. 16:30
728x90

#include <iostream>
using namespace std;

int d(int n) {
	int num = n;
	while (n != 0)
	{
		num += n % 10;
		n = n / 10;
	}
	return num;
}

int main() {
	bool a[10001] = { false };

	for (int i = 1; i < 10001; i++)
	{
		int x = d(i);
		if (x < 10001)
			a[x] = true;
	}
	for (int j = 1; j < 10001; j++)
	{
		if (!a[j])
			cout << j << endl;
	}
}

d함수를 먼저 작성한 뒤 메인 함수에 Bool형 배열을 선언하였습니다.

d함수를 이용해 생성자가 존재하는 숫자는 배열 a에서 true로 바꿔줍니다.

그렇게 1에서 10000까지 for문을 돌려서 셀프 넘버를 찾아냅니다.

마지막에 배열 a 에서 false인 값만 출력해주면 됩니다.

 

728x90

'Algorithm > Baekjoon' 카테고리의 다른 글

[백준][C++]2805번 나무 자르기  (0) 2022.05.16
[백준][C++]1072번 게임  (0) 2022.05.16
[백준][Python]10866 0 = not cute / 1 = cute  (0) 2021.08.07
[백준][C++]2908번 상수  (0) 2021.07.09
[백준][C++] 1157번 단어 공부  (0) 2021.07.08