(cpp) Baekjoon 2231번 문제 ‘분해합’ - 브루트포스
문제
여러번 시도했는데, 마지막에 cout«“0”;인경우도 추가해줘야함
풀이
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include<stdio.h>
#include<cmath>
#include<algorithm>
#include<vector>
#include<string>
using namespace std;
int n,j,part;
int main() {
//자연수 m
//m의 분해합 =m+m을 이루는 각 자리수 (245분해합 = 245+2+4+5= 256)
//m의 분해합 = n (256)
//m : n의 생성자 --> 245는 256의 생성자
//어떤수(n)의 가장 작은 생성자 구하기
//1부터 그냥 쭉 구하기
cin >> n ;
for (int i = 1; i < n; i++) {
j = i;
part = i;
while (j != 0) {
part = part + j % 10; //45+5+4
j = j / 10; //0
}
if (part == n) {
printf("%d", i);
return 0 ;
}
}
cout << "0";
return 0;
}