알고리즘 문제풀이 [백준 4375]
🔎 BACKJOON 4375
- 문제
2와 5로 나누어 떨어지지 않는 정수 n(1 ≤ n ≤ 10000)가 주어졌을 때, 1로만 이루어진 n의 배수를 찾는 프로그램을 작성하시오.
- 입력
입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, n이 주어진다.
- 출력
1로 이루어진 n의 배수 중 가장 작은 수의 자리수를 출력한다.
#include <iostream>
using namespace std;
int main(int argc, char const *argv[]){
int n, len, one;
while (cin >> n){
one = 1;
len = 1;
while (1){
if(one % n == 0){
break;
}
else{
len++;
one = one * 10 + 1;
one %= n;
}
}
cout << len << "\n";
}
return 0;
}
독해력이 부족해서 문제해석에 있어서 많이 헷갈렸다.. 문제에서 말하는 바는 3을 입력 시 3의 배수중 1, 11, 111 …으로 1로만 이루어진 수로 나누어 떨어지는 숫자의 길이를 출력하는 것!
따라서 long long
의 max값을 넘길 수 있기 때문에 mod연산을 이용하여 값을 줄여가며 구해야 한다.
댓글남기기