예지의 테크 로그포스 (Yeji's Tech Log Force)

[BOJ][C++] 백준 2231 분해합 본문

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;
}
Comments