브루트 포스 문제.
값을 입력받으면 몇 자리수인지 확인하고 그 자리수만큼 숫자를 채우고 1씩 증가시켜가며 답을 구했다.
ex) 216
-> 100 (100+1+0+0)
-> 101 (101+1+0+1)
-> 102 (102+1+0+2)
....
..
.
-> 198 (198+1+9+8=216)
1.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
|
#include <iostream>
using namespace std;
string str;
long size;
int Target;
void solved(int ans, int sum, int cnt){
if((sum+ans)==Target){
cout << ans << endl;
exit(0);
}
if(cnt>size) return;
if(ans==0) return;
for(int i=0;i<=9;i++){
solved(ans*10+i,sum+i,cnt+1);
}
}
int main(){
cin >> str;
Target=atoi(str.c_str());
size=str.size();
for(int i=1;i<=9;i++){
solved(i,i,1);
}
cout << 0 << endl;
}
|
cs |
2.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
|
#include <iostream>
using namespace std;
int Target;
void solved(int key){
int sum=key;
int ans=key;
while(key>0){
sum+=key%10;
key/=10;
}
if(sum==Target){
cout << ans << endl;
exit(0);
}
}
int main(){
cin >> Target;
for(int i=1;i<=Target;i++){
solved(i);
}
cout << 0 << endl;
}
|
cs |
'Coding > 백준' 카테고리의 다른 글
10871번 X보다 작은 수 (0) | 2020.03.31 |
---|---|
9498번 시험 성적 (0) | 2020.03.31 |
5585번 거스름돈 (0) | 2020.03.30 |
1978번 소수 찾기 (0) | 2020.03.23 |
1912번 연속합 (0) | 2020.03.22 |