프로그래밍 공부

[백준 4673번] C++ 셀프 넘버 찾기.

Rocketbabydolls 2020. 11. 15. 19:56

 

#include <iostream>

using namespace std;
int is_self(int n)
{
    int tmp = n;

    if (n <= 10)
    {
        for(int i = 1 ; i <= n ; i++)
        {
            if ( i + i == n)
                return 0;
        }
        return 1;
    }
    else if (n > 10 && n <= 100)
    {
        for(int i = 1 ; i < 10 ; i++)
        {
            tmp = n;
            for(int j = 0 ; j < 10 ; j++)
            {
                tmp = n;
                tmp = tmp - i - j;
                if(tmp + tmp/10 + tmp%10 == n)
                    return 0;
            }
        }
        return 1;
    }
    else if (n > 100 && n <= 1000)
    {
        for(int i = 1 ; i < 10 ; i++)
        {
            tmp = n;
            for(int j = 0 ; j < 10 ; j++)
            {
                tmp = n ;
                for(int k = 0 ; k < 10 ; k++)
                {
                     tmp = n;
                    tmp = tmp - i - j - k;

                    if(tmp + tmp/10%10 + tmp%10 + tmp /100 == n)
                        return 0;

                }

            }

        }
        return 1;
    }
    else if (n > 1000 && n <= 10000)
    {
        for(int i = 1 ; i < 10 ; i++)
        {
            tmp = n;
            for(int j = 0 ; j < 10 ; j++)
            {
                tmp = n ;
                for(int k = 0 ; k < 10 ; k++)
                {
                    tmp = n;
                    for(int l = 0 ; l < 10 ; l++)
                    {
                         tmp = n;
                        tmp = tmp - i - j - k - l;

                        if(tmp + tmp/10%10 + tmp%10 + tmp /100%10 + tmp/1000 == n)
                            return 0;
                    }

                }

            }

        }
        return 1;
    }

}

int main()
{
    //cin.tie(NULL);
    //ios::sync_with_stdio(false);

    for(int i = 1 ; i <= 10000 ; i++)
    {
        if (is_self(i) == 1)
        {
            cout << i << '\n';
        }
        else
        {
            continue;
        }
    }


    return 0;
}