백준알고리즘

백준 4673 C++

컨트롤디 2021. 6. 28. 16:29
#include <iostream>
#include <cstdio>
#define max 10001

using namespace std;

bool arr[max];
int self(int n){
    int sum = n;

    while(1){
        if(n == 0) break;
        sum += n%10;    //한자리씩 더해줌
        n = n/10;   //한자리씩 없애줌
    }

    return sum;
}

int main(){

    for(int i=1; i<max; i++){
        int ind = self(i); // ind = 셀프넘버
        if(ind <= max){
            arr[ind] = true; // ind 가 arr의 인덱스로 들어가고 셀프넘버가 아니므로 true로 변경
        }
    }

    for(int i=1; i<max; i++){
        if(!arr[i]) cout << i << endl;
    }
    return 0;
}