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