해결방법
입력받은 수인 N과 그 분해합이 일치하는 가장 작은 경우를 찾는 문제이다. 무식하지만 1부터 수에 자리수를 더한 값이 N과 일치하는지를 찾아서 일치하는 값이 나올때까지 반복문을 돌리는 방식으로 해결했다.
정답 코드
#include <iostream>
using namespace std;
int factorize(int num)
{
int sum = num;
while (num > 0)
{
sum += num % 10;
num /= 10;
}
return sum;
}
int main()
{
int N;
cin >> N;
int answer = 0;
for (int i = 1; i < N; i++)
{
if (factorize(i) == N)
{
answer = i;
break;
}
}
cout << answer << endl;
return 0;
}
'코딩테스트' 카테고리의 다른 글
BOJ - 18229 내가 살게, 아냐 내가 살게 (0) | 2024.09.30 |
---|---|
BOJ - 1978 소수 찾기 (0) | 2024.09.26 |
BOJ - 25756 방어율 무시 계산하기 (0) | 2024.09.25 |
BOJ - 26004 HI - ARC (0) | 2024.09.25 |
BOJ - 30802 웰컴 키트 (0) | 2024.09.24 |