hwooo
(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

코드
#include <stdio.h>
void Self_num();
int arr[10001] = { 0, };
int main() {
int i;
Self_num();
for (i = 1; i <= 10000; i++) {
if (!arr[i]) printf("%d\n", i);
}
}
void Self_num() {
int i, n, i_1000, i_100, i_10, i_1;
for (i = 1; i <= 10000; i++) {
i_1000 = i / 1000;
i_100 = i / 100 - i_1000 * 10;
i_10 = i / 10 - i_1000 * 100 - i_100 * 10;
i_1 = i % 10;
n = i + i_1000 + i_100 + i_10 + i_1;
if (n <= 10000) arr[n]++; // 합이 10000 이하일 경우 배열에 저장
}
}
/*
void Self_num() {
int i, n, i_1000, i_100, i_10, i_1;
for (i = 1; i <= 10000; i++) {
if (i < 10) n = i + i;
else if (i < 100) {
n = i + i / 10 + i % 10;
}
else if (i < 1000) {
i_100 = i / 100;
i_10 = i / 10 - i_100 * 10;
i_1 = i % 10;
n = i + i_100 + i_10 + i_1;
}
else {
i_1000 = i / 1000;
i_100 = i / 100 - i_1000 * 10;
i_10 = i / 10 - i_1000 * 100 - i_100 * 10;
i_1 = i % 10;
n = i + i_1000 + i_100 + i_10 + i_1;
}
if (n <= 10000) arr[n]++;
}
}
*/
'Study > Algorithm' 카테고리의 다른 글
(C) 11654번: 아스키 코드 (0) | 2022.06.07 |
---|---|
(C) 1065번: 한수 (0) | 2022.06.07 |
(C) 15596번: 정수 N개의 합 (0) | 2022.06.06 |
(C) 4344번: 평균은 넘겠지 (0) | 2022.06.06 |
(C) 8958번: OX퀴즈 (0) | 2022.06.06 |