CodingTest/BeakJoon Silver
[백준 4375번 C++] Silver3. 1
주녘
2024. 12. 6. 17:35
https://www.acmicpc.net/problem/4375
핵심 아이디어 및 정답 코드
- 큰 수를 대상으로 % 연산 시, 많은 수를 나눠야 하므로, 대상의 크기를 줄임
-> 모듈러 성질 이용 : (A * B) % C = (A % C) * (B % C)
-> 자료형 크기를 벗어나는 것도 방지할 수 있음
+ 출력할 때, 개행 문자를 추가하지 않으면 출력 양식에 맞지 않아 실패
정답 코드
#include <iostream>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
int target;
while (cin >> target)
{
int num = 1; // 타겟으로 나누어지는 대상
int count = 1; // 1의 개수
while (num % target != 0)
{
num = (num * 10 + 1) % target;
count++;
}
cout << count << "\n";
}
return 0;
}