나는 유클리드 알고리즘을 가지고 있으며 재귀 버전을 만들어야합니다. 알고리즘의 재귀 버전이 실제로 무엇인지 알 수는 없으므로 여기서 어떤 도움을 주시면 감사하겠습니다! :)유클리드 알고리즘의 재귀 버전이 필요합니다.
주어진 알고리즘이다
X ← MAX
Y ← MIN
while (Y != 0){
mod ← X mod Y
X ← Y
Y ← mod}
GCD ← X
나는 유클리드 알고리즘을 가지고 있으며 재귀 버전을 만들어야합니다. 알고리즘의 재귀 버전이 실제로 무엇인지 알 수는 없으므로 여기서 어떤 도움을 주시면 감사하겠습니다! :)유클리드 알고리즘의 재귀 버전이 필요합니다.
주어진 알고리즘이다
X ← MAX
Y ← MIN
while (Y != 0){
mod ← X mod Y
X ← Y
Y ← mod}
GCD ← X
재귀 실제로 I은 X> = Y> 0
본질적 가정 여기서 반복
GCD(X,Y):
if Y == 0:
return X
else:
return GCD(Y, X mod Y)
'Y == 0'이면'X'를 반환하지 않습니까? 재귀를 종결시키기위한 조건이'Y == 0 return 0'이기 때문에 이것처럼 보인다. – asafreedman
고마워, 나는 이제 내가하고 싶은 일을 이해한다. 재귀가 무엇이고 어떻게 구현되었는지 알 수 없습니다. 다시 한 번 감사드립니다! – user3083578
매우 비슷 재귀는 대답이 명백해질 때까지 (X '= Y와 Y'= X % Y) 작은 X '와 Y'로 문제를 해결합니다. 당신은 어떤 프로그래밍 언어를 작성하여 어떤 노력을 보여주고 다음 질문 누군가 태그를 다시 지정할 필요가
int GCD(X, Y)
{
if ((X % Y) == 0)
{
return Y;
}
else
{
return GCD(Y, X % Y);
}
}
:
는최대 공약수 (GCD)를 해결하기위한 유클리드의 재귀 버전 알고리즘 (C 버전)입니다 대답 할거야. –
재귀는 루핑 메커니즘으로 볼 수 있습니다. 따라서 조건이있는 while 루프가 기본 case를 가진 재귀 호출로 어떻게 변환 될 수 있는지 생각해보십시오. –
이것은 [recursion] (https://www.google.com/#q=recursion)) – Koryu