-
[1일 1백준 : 4673번] 셀프 넘버Programming/백준 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
'Programming > 백준' 카테고리의 다른 글
[1일 1백준 : 11720번] 숫자의 합 (0) 2021.01.20 [1일 1백준 : 1065번] 한수 (0) 2021.01.20 [1일 1백준 : 15596번] 정수 N개의 합 (0) 2021.01.18 [1일 1백준 : 4344번] 평균은 넘겠지 (2) 2021.01.17 [1일 1백준 : 8958번] OX퀴즈 (0) 2021.01.17