알고리즘/백준

[백준_단계별로 풀어보기]함수 - 4673번 셀프 넘버 | c언어

jiiihye 2022. 1. 13. 13:52

 

c언어

#include<stdio.h>

int self_num();

int main(){
    self_num();
    return 0;
}

int self_num(){
    int x[10000]={0};
    int no_self=0;

    for(int i=1;i<=10000;i++){
        if(i<10){
            no_self=i+i;
            x[no_self]=1;
        }else if(i<100){
            no_self=i+(i/10)+(i%10);
            x[no_self]=1;
        }else if(i<1000){
            no_self=i+(i/100)+((i%100)/10)+((i%100)%10);
            x[no_self]=1;
        }else if(i<10000){
            no_self=i+(i/1000)+((i%1000)/100)+(((i%1000)%100)/10)+(((i%1000)%100)%10);
            if(no_self<=10000)  x[no_self]=1;
        }
    }
    for(int j=1;j<=10000;j++){
        if(x[j] != 1) printf("%d\n",j);
    }

    return 0;
}

결과가 9993까지만 나와야되는데 자꾸 10000까지 나온다,, 어디가 잘못된건지 더 찾아봐야된다..