본문 바로가기
7장 기타/백준 BOJ

[백준/BOJ] 4673번 셀프 넘버 (C++)

2021. 5. 21.
 

4673번: 셀프 넘버

셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때,

www.acmicpc.net

문제의 소재

10,000보다 작은 셀프넘버를 모두 출력하는 문제이다.

해답

 

// BOJ_4673.cpp
#include<iostream>
using namespace std;
const int N = 10000;

int selfnum(int);

int main()
{
    bool num[N] = {0};
    
    for (int i=1;i<N;i++)
        if (selfnum(i)<N)
            num[selfnum(i)] = true;
    for (int i=1;i<N;i++)
        if (num[i] == false) cout<<i<<"\n";
        
    return 0;
}

int selfnum(int i)
{
    return i+i%10+i/10%10+i/100%10+i/1000%10;
}
반응형

댓글