알고리즘

백준 : : 2231번 분해합 - C++ 풀이

green333 2022. 4. 30. 00:02
728x90
SMALL

https://www.acmicpc.net/problem/2231

 

2231번: 분해합

어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이

www.acmicpc.net

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
 
using namespace std;
 
int main(void)
{
    int n, i;
    int startVal;
    int result;
 
    cin >> n;
 
    for(i = 1; i < n; i++){
        result = i;
        startVal = i;
 
        while(startVal > 0)
        {
            result += startVal%10;
            startVal /= 10;
        }
        if(result == n){
            cout << i << endl;
            return 0;
        }
    }
 
    cout << "0" << endl;
    return 0;
}
cs

 

 

브루트포스 문제. 기본 공식만 알면 해결 !
= 값 하나씩 증가시켜주기
LIST