공부/백준

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을 출력한다.