백준 2231 분해합 / C++

이유참치·2025년 12월 15일

백준

목록 보기
67/249

문제 : 2231

풀이 point

본인 수 + 백의 자리 + 십의 자리 + 일의 자리 형태로
자리수 + 원래수를 더해서 N이 되도록 하는 생성자를 구하는 문제이다.

N이 1,000,000이므로 전수조사를 행할 수 있다.

풀이 방법

N을 만들 수 있는 생성자를 찾기 위해 전수조사를 실시한다.

코드

//백준 2231, 분해합
#include <iostream>

int main(){

    int N;
    std::cin >> N;
    int n{1};
    while(N >= n){
        int tmp = n;
        int val{0};
        val += tmp;
        while(tmp > 0){
            val += tmp%10;
            tmp /= 10;
        }
        if(val == N){
            std::cout << n;
            return 0;
        }
        else ++n;
    }
    std::cout << 0;

    return 0;
}
profile
임아리 - 대학생

0개의 댓글