공부/백준

2231번: 분해합(백준 C++)

상연 2020. 10. 23. 19:37

목차

    2231번: 분해합 링크

    코드

    #include <iostream>
    using namespace std;
    
    int unit_sum(int n){
        int result = 0;
        while(n){
            result += n % 10;
            n /= 10;
        }
        return result;
    }
    
    int main() {
        int n;
        cin >> n;
    
        for(int i=1; i<n; i++){
            if(i + unit_sum(i) == n){
                cout << i;
                return 0;
            }
        }
        cout << 0;
    
    
        // your code goes here
        return 0;
    }

    사견

    1부터 시작해서 주어진 수까지, 분해합이 성립하는지 확인한다.
    한 번이라도 성립하면 그 분해합이 가장 작은 수 이므로 종료하고,
    반복문이 끝날때까지 분해합을 못 찾으면 0을 출력한다.