728x90
https://www.acmicpc.net/problem/2231
브루트포스 를 이용해서 푸는 문제로,
조건만 잘 맞추면 어렵지 않게 풀 수 있는 문제다
나 같은 경우엔
1 부터 백만까지의 수(i) 를 돌려서
그 수(i) + 그 수의 각 자리수의 합 (i 의 자리수 합) 을 구한다음
그 값이 입력받은값 N 과 동일하면 값을 출력하고,
전체 다 돌았음에도 값을 찾지 못하는 경우 0 이 출력되도록 해주면 풀렸다.
- c++
#include <iostream>
#define MAX 1000001
using namespace std;
int N;
int main() {
cin.tie(nullptr);
ios_base::sync_with_stdio(false);
cin >> N;
bool check = false;
for (int i = 1; i < MAX; i++) {
int tmp = i;
int sum = 0;
int answer = i;
sum += i;
while (tmp) {
int re = tmp % 10;
sum += re;
tmp /= 10;
}
if (sum == N) {
check = true;
cout << answer;
break;
}
}
if(!check) {
cout << 0;
}
return 0;
}
|
cs |
728x90
'PS' 카테고리의 다른 글
BOJ 3085 - 사탕 게임 (0) | 2020.08.14 |
---|---|
BOJ 1157 - 단어 공부 (0) | 2020.08.13 |
BOJ 2042 - 구간 합 구하기 (0) | 2020.08.11 |
BOJ 2309 - 일곱 난쟁이 (0) | 2020.08.11 |
BOJ 1002 - 터렛 (0) | 2020.08.07 |