본문으로 바로가기

[백준] 알고리즘 4673번 - 셀프넘버 문제

category Algorithm 2020. 11. 21. 23:33

#include<bits/stdc++.h>
using namespace std;
int arr[10036];
int arr1[10036];
int selfn(int i) {
	int sum = i;
	while (i > 0) {
		sum += i % 10;
		i = i / 10;
	 }
	return sum;
}
int main()
{
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	for (int i = 1; i <= 10000; i++) {
		arr[i] = i;
		arr1[selfn(i)] = selfn(i);
	}
	for (int i = 1; i <= 10000; i++) {
		if (arr[i] != arr1[i]) cout << arr[i]<<"\n";
	}
}

 

여러가지 방법이 있겠지만, 단순하게 구현했다.

n의 각 자리수를 구하는 방법 n%10

n의 각 자리수를 하나씩 제거하는 방법 n/10