백준 문제풀이/브론즈2
백준 2231번 - 분해합
void_melody
2021. 12. 17. 03:45
https://www.acmicpc.net/problem/2231
2231번: 분해합
어떤 자연수 N이 있을 때, 그 자연수 N의 분해합은 N과 N을 이루는 각 자리수의 합을 의미한다. 어떤 자연수 M의 분해합이 N인 경우, M을 N의 생성자라 한다. 예를 들어, 245의 분해합은 256(=245+2+4+5)이
www.acmicpc.net
사고과정)
심플하다. 그냥 해당 수 + 각 자리의 숫자 더하면 된다.
주의할 점이라면 반복문에서 선언한 i를 식으로 활용하면 i 값이 변경되서 반복문이 이상해지므로
index라는 새로운 변수를 선언해주었다.
#include <iostream>
using namespace std;
int main()
{
ios::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
int N;
cin >> N;
for (int i = 1; i < N; i++)
{
int index = i;
int sum = i;
while (index != 0)
{
sum = sum + index % 10;
index = index / 10;
}
if (sum == N)
{
cout << i;
return 0;
}
}
cout << 0;
return 0;
}