CS/Algorithm & Data Structure
[BOJ][C++] 백준 2231 분해합
Yeji Heo
2022. 11. 22. 16:34
브루트포스 문제였다. for문의 i가 정답이 될 후보들이라고 볼 수 있다.
i를 1~N전까지 모두 계산해보도록 했다.
%10으로 끝자리를 구하고, /10으로 계산한 끝자리를 떼어주며 반복시켜 각 자릿수를 구했다.
+ 첫 시도 때.. if조건문에서 분해합을 찾았으므로 탈출할 때 break;를 써줬었다.. break;는 해당 루프 단 1개만 탈출한다는 걸 깜빡 했다...그래서 return으로 바꿔줬다.
#include <iostream>
using namespace std;
int main()
{
int N;
cin >> N;
int number, sum;
for (int i = 1; i < N; i++) {
sum = i;
number = i;
while (number!=0) {
sum += number % 10;
number /= 10;
}
if (sum == N) {
cout << i;
return 0;
}
}
cout << 0;
}