Programming/백준
[1일 1백준 : 4673번] 셀프 넘버
HyeunJae
2021. 1. 19. 23:33
이번문제에서 많이 해매서 좀 억지로 푼 감이 있네요..
#include <iostream>
#include <math.h>
#include <vector>
#include <algorithm>
const int d(int n)
{
const int number = n;
int sum = 0;
while (n != 0)
{
sum += n % 10;
n /= 10;
}
return number + sum;
}
void SelfNumber(int n)
{
std::vector<int> index;
std::vector<int>::iterator iter;
index.reserve(10000);
int number = 1;
for (size_t i = 0; number < n; i++)
{
number = d(i);
index.emplace_back(number);
}
std::sort(index.begin(), index.end());
for (size_t i = 0; i <= n - 7; i++)
{
if ((iter = std::find(index.begin(), index.end(), i)) == index.end())
std::cout << i << std::endl;
}
}
/*
1,3,5,7,9,20,31,42,53,64,75,86,97 : Self Number
2,4,6,8,10,11,12,13,14,15,16,17,18,19,21,22,23,24,25,26,27..
*/
int main(void)
{
SelfNumber(10000);
return 0;
}
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net