더보기
입력 예시
3
출력 예시
111
#include<iostream>
#include<algorithm>
using namespace std;
unsigned long long N;
// 2^64는 10^20보다 작다.
// 따라서 1또는 0으로 만들 수 있는 최대의 수는 1을 20번쓰는 것이다..
const unsigned long long limit = 11111111111111111111;
unsigned long long minValue = UINT64_MAX;
void solve(unsigned long long start){
if (start % N == 0)
minValue = min(minValue, start);
if (start > limit / 10)
return;
solve(start * 10 + 1);
solve(start * 10);
}
int main(){
cin >> N;
if (N > limit) {
printf("0");
return 0;
}
solve(1);
if (minValue == UINT64_MAX)
cout << 0;
else cout << minValue;
return 0;
}
'알고리즘' 카테고리의 다른 글
[코드업] 3021 - 큰 수 덧셈 (0) | 2020.01.21 |
---|---|
[코드업] 3500 - 지뢰 찾기 2 (0) | 2019.12.28 |
[백준] 2468 - 안전 영역 (0) | 2019.11.30 |
[백준] 7569 - 토마토 (0) | 2019.11.16 |
[백준] 17779 - 게리맨더링 2 (0) | 2019.11.03 |