출처:https://www.acmicpc.net/problem/4673
10000보다 작은 수를 반복하면서, 각 자릿수를 더한 숫자값을 체크하는 방식으로 구현을 해보았다. 각 자릿수를 더하는 알고리즘이 생각보다 자주 나오므로, 알고있으면 좋을거 같다! for문 보다 while문을 이용하는게 더 좋은거 같음!
#include <bits/stdc++.h>
using namespace std;
int check_self_Number(int N)
{
int sum = N;
while (N > 0)
{
sum += N % 10;
N /= 10;
}
return sum;
}
int main()
{
bool self_Number[20001] = {};
int target;
for (int i = 1; i < 10001; i++)
self_Number[check_self_Number(i)] = true;
for (int i = 1; i < 10001; i++)
{
if (!self_Number[i])
cout << i << '\n';
}
return 0;
}