https://www.acmicpc.net/problem/4375
4375번: 1
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 각 자릿수가 모두 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
www.acmicpc.net
이 문제에서 주의할 점은 큰 수를 어떻게 처리할 것이냐 이다.
큰 수도 다뤄야하기에, 오버플로우가 날 수 있기 때문이다.
예.. 이렇게 나머지를 활용해서 계산을 이어나가면, 오버플로우 없이 계산을 마무리할 수 있다.
#include <iostream>
#include <stack>
#include <vector>
#include <cmath>
#include<algorithm>
using namespace std;
void restOne (int n) {
int rest = 1;
int turn = 1;
while(true){
rest = rest % n;
if(rest == 0){
cout << turn << '\n';
break;
}
rest = (rest * 10)%n + 1;
turn++;
}
}
int main() {
int n;
while(cin >> n){
restOne(n);
}
return 0;
}
728x90
'백준이당' 카테고리의 다른 글
[C++] 백준 1182번? : 부분수열의 합 (0) | 2023.08.01 |
---|---|
[C++] 백준 10988번 : 팰린드롬인지 확인하기 (0) | 2023.08.01 |
분할정복을 알아보자 (0) | 2023.07.26 |
[JAVA] 백준 5430번 : AC (0) | 2023.07.12 |
[JAVA] 백준 2164번 : 카드2 (0) | 2023.07.12 |