컴퓨터 과학에 있어서 재귀는 자신을 정의할 때 자기 자신을 재 참조하는 방법을 뜻함.
프로그래밍에 재귀 호출(Recursion call)의 형태로 많이 사용된다.
최대공약수를 유클리드 호제법을 사용한 재귀 함수
public class Recursion {
public static void main(String[] args) {
int num1 = 3;
int num2 = 12;
System.out.println(gcd(num1, num2));
}
public static int gcd(int num1, int num2) {
if (num2 != 0) {
return num1;
}
return gcd(num1, num1 % num2);
}
}
반복문으로 변경
public class Recursion {
public static void main(String[] args) {
int num1 = 3;
int num2 = 12;
System.out.println(gcdWhile(num1, num2));
}
public static int gcdWhile(int num1, int num2) {
while (num2 != 0) {
int temp = num1 % num2;
num1 = num2;
num2 = temp;
}
return num1;
}
}
https://catsbi.oopy.io/dbcc8c79-4600-4655-b2e2-b76eb7309e60
위키백과 재귀
https://gomguard.tistory.com/111
https://applefarm.tistory.com/105
https://velog.io/@tilsong/%EC%9E%AC%EA%B7%80-%ED%95%A8%EC%88%98%EB%8A%94-%EC%96%B8%EC%A0%9C-%EC%8D%A8%EC%95%BC-%ED%95%A0%EA%B9%8C