728x90

단계별로 풀어보기 - 브루트 포스 단계 - [2단계] 2231번
문제


문제 링크 : www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
입력 복사 :
216
CODE
#include <iostream>
#include <cmath>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n, result = 10000001;
int generate;
cin >> n;
for (int i = 1; i <= n; i++) {
generate = i + (i % 10);
for (int j = 1; j <= log10(i); j++) {
generate += (i % (int)pow(10, j + 1)) / pow(10, j);
}
if (generate == n && i < result)
result = i;
}
if (result > 1000000)
cout << 0 << '\n';
else
cout << result << '\n';
}
결과


728x90
'Baekjoon > 단계별로 풀어보기' 카테고리의 다른 글
[BOJ / 백준] 1018번 체스판 다시 칠하기 C++ 문제 풀이 (0) | 2020.12.02 |
---|---|
[BOJ / 백준] 7568번 덩치 C++ 문제 풀이 (0) | 2020.11.26 |
[BOJ / 백준] 2798번 블랙잭 C++ 문제 풀이 (0) | 2020.11.26 |
[BOJ / 백준] 11729번 하노이 탑 이동 순서 C++ 문제 풀이 (0) | 2020.11.22 |
[BOJ / 백준] 2447번 별 찍기 - 10 C++ 문제 풀이 (0) | 2020.11.21 |