해결된 질문
작성
·
145
답변 1
0
"유클리드 호제법을 모르는 상태에서 저 코드만 보고 최대공약수를 구하는 방법인 것을 어떻게 아느냐" 라는 것이 질문이시면 사실 코드만 봐서는 단번에 알기는 불가능합니다. 직접 풀어보지 않는 한요.
바로 코드만 보고 최대공약수인 것은 알기 어렵습니다.
만약 코드만 보고 최대공약수인 것을 알려면 아래와 같은 코드가 나오면 아실 수는 있을 겁니다.
함수가 하나있다. 여기에 들어온 입력값의 약수에 최대값을 저장해서 변수로 가지고 있다.
어떤 2개의 숫자를 여기에 넣는다. 그리고 두 개의 최대 약수가 ==을 통해 참인 경우 1을 리턴한다.
이런 코드 흐름이면 바로 알 수 있습니다. 우리 모두 약수를 구하는 코드는 %로 구할 수 있고, 그 최대값을 구하는 코드도 쉽게 알고, ==도 알 수 있으니까요. 하지만 유클리드 호제법은 최대공약수를 구하는 수학 공식 같은 것으로 생각하시면 됩니다.
이런 것들은 사실 많습니다.
예를 들어 XOR로 두 값을 교환(swap)하는 것도 사전 배경지식이 없으면 즉시 알기는 정말 어렵습니다.
x = x ^ y;
y = x ^ y;
x = x ^ y;
이런 것들은 그냥 해보면 동작합니다. 원리를 바로 봐서는 알 수가 없습니다.
그래서 영상에 예시로 넣은 것입니다.
혹시라도 시험에 나올 수도 있으니까요.
사실 저 방법은 우리가 어렸을 때 수학 교과서에서 한 번 쯤은 배웠을텐데,
자라면서 잊어버렸을 듯 싶습니다.
수학의 원리에 대해서 물어보시면 저도 답변은 어렵습니다 😅