#문제
17087번: 숨바꼭질 6
수빈이는 동생 N명과 숨바꼭질을 하고 있다. 수빈이는 현재 점 S에 있고, 동생은 A1, A2, ..., AN에 있다. 수빈이는 걸어서 이동을 할 수 있다. 수빈이의 위치가 X일때 걷는다면 1초 후에 X+D나 X-D로 이
www.acmicpc.net
#풀이 & 학습한 내용
동생들의 각각의 위치에서 수빈이의 위치를 뺀 값들의 최대공약수(GCD)를 구하는 문제이다. 유클리드 호제법을 이용해 GCD를 구하고, GCD(a,b,c)=GCD(GCD(a,b),c)임을 통해 순차적으로 계산한다.
#소스코드
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
|
#include<iostream>
#include<algorithm>
using namespace std;
long long gcd(long long a, long long b) {
if (b == 0)
return a;
else
return gcd(b, a%b);
}
int main(void) {
long long N, S;
cin >> N >> S;
long long p,k;
cin >> p;
p = abs(p - S);
N--;
while (N--) {
cin >> k;
p = gcd(p, abs(k-S));
}
cout << p << '\n';
}
|
cs |
github.com/HoYoungChun/BOJ_algorithm/blob/master/Math/BOJ_17087.cpp
HoYoungChun/BOJ_algorithm
Baekjoon Online Judge problem solving by C++. Contribute to HoYoungChun/BOJ_algorithm development by creating an account on GitHub.
github.com
'Algorithm > Math' 카테고리의 다른 글
| [C++] 백준 1373번 : 2진수 8진수 (B2) (0) | 2020.11.22 |
|---|---|
| [C++] 백준 9613번 : GCD 합 (S3) (0) | 2020.11.21 |
| [C++] 백준 2004번 : 조합 0의 개수 (S2) (0) | 2020.11.21 |
| [C++] 백준 1676번 : 팩토리얼 0의 개수 (S3) (0) | 2020.11.21 |
| 모듈로 연산 정리 (0) | 2020.11.19 |