사자자리
[C++] 백준 4673번: 셀프 넘버 본문
https://www.acmicpc.net/problem/4673
4673번: 셀프 넘버
셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,
www.acmicpc.net
i(1 ~ 10000)를 생성자로 갖는 수 n(10000 이하)을 구한다.
n은 생성자가 있는 수이므로, 출력하지 말아야 한다.
#include <iostream>
using namespace std;
int d(int n) { //n을 생성자로 하여, n과 n의 각 자리수를 더하는 함수
int sum = n;
while (n != 0) {
sum += n % 10;
n = n / 10;
}
return sum;
}
int main() {
int arr[10001] = { 0 };
for (int i = 1; i < 10001; i++) {
int n = d(i); //i가 생성자가 된다.
if (n < 10001) { //만들어진 수는 10000 이하만 쓴다.
arr[n] = 1;
}
}
for (int i = 1; i < 10001; i++) {
if (arr[i] == 0) {
cout << i << endl;
}
}
return 0;
}
'C++ > C++ 문제' 카테고리의 다른 글
[C++] 백준 10430번: 나머지 (0) | 2022.08.17 |
---|---|
[C++] 백준 1308번: D-Day (0) | 2022.08.05 |
[C++] 백준 10872번: 팩토리얼 (0) | 2022.08.03 |
[C++] 백준 10871번: X보다 작은 수 (0) | 2022.07.27 |
[C++] 백준 2739번: 구구단 (0) | 2022.07.27 |
Comments