728x90
재귀는 자기 자신을 반복하는 것입니다.
재귀의 대표적인 예가 팩토리얼입니다.
팩토리얼은 n을 포함한 그보다 작은 자연수를 모두 곱하는 것입니다.
n!로 표기할 수 있는데
5! 는 5*4*3*2*1로 120입니다.
5! 은 5*4!로
4! 은 4*3!로
3! 은 3*2!로
2! 은 2*1로 나타낼 수 있습니다.
n*(n-1)!로 나타낼 수 있습니다.
자바 코드로 나타내면 아래와 같습니다.
public class javaarray{
static int factorial(int n) {
if(n>0) {
return n*factorial(n-1);
}
else {
return 1;
}
}
}
n이 0보다 클 경우 n*factorial(n-1)를 반환하고
아닐 경우에는 1을 반환합니다.
3이면 3*factorial(2), 2*factorial(1),1*(factorial(0)=1)
1*1*2*3이 됩니다.
public class javaarray{
static int factorial(int n) {
if(n>0) {
return n*factorial(n-1);
}
else {
return 1;
}
}
public static void main(String[] args) {
System.out.println(factorial(5));
System.out.println(factorial(6));
System.out.println(factorial(7));
}
}
728x90
'기타 > java 자료구조와 알고리즘' 카테고리의 다른 글
재귀 함수 알고리즘 예 하향식,상향식 분석하기 (0) | 2020.12.30 |
---|---|
[JAVA]유클리드 호제법이란? (0) | 2020.12.29 |
자바 2 차원 배열 선언 및 초기화 (0) | 2020.12.27 |
[JAVA]소수 판별 메소드 (0) | 2020.12.25 |
[JAVA] 두 배열 비교 알고리즘 (0) | 2020.12.24 |