알고리즘 문제 해결/BOJ

[수학] BOJ 1612 가지고 노는 1

jmkimmessi 2022. 4. 25. 00:00
반응형

https://www.acmicpc.net/problem/1612

 

1612번: 가지고 노는 1

동물원에서 막 탈출한 원숭이 한 마리가 세상구경을 하고 있다. 이 원숭이는 수를 이리저리 가지고 노는 것을 매우 좋아한다. 그중에서도 1을 가지고 노는 것을 매우매우매우매우매우 좋아한다.

www.acmicpc.net

 

문제 해결 알고리즘

 

2와 5로 나눠지면 끝자리가 1이 나오지 않으므로 여기서 만약 나눠지면 -1을 출력한다.

 

숫자가 long long보다 길어지므로 모듈러 연산을 통해서 해결해준다. 

 

소스 코드

 

#include <iostream>
#include <string>
using namespace std;

int main() {
	long long a; cin >> a;
	long long cmp = 1;
    int result = 1;
	if (a % 2 == 0 || a % 5 == 0) cout << -1;
	else {
		while (cmp % a != 0) {
			result++;
            cmp = (cmp % a) * 10 + 1;
		}
		cout << result;
	}
}
반응형