Java

재귀함수(팩토리얼 구하기)

krvision 2011. 11. 29. 19:22

public class RecursionDemo {


	public static void main(String[] args) {
		// 재귀 호출을 사용하여 Factorial 구하기: 3! = 3 * 2 * 1 = 6
		
		System.out.println(FactorialFor(4)); // 일반함수 이용
		System.out.println(Factorial(4));    // 재귀함수 이용
		System.out.println(Fact(4));         // 3항연산자 사용
	}
	
	private static int FactorialFor(int n){  //일반적인 함수 방식 사용
		int result =1;
		for (int i=1; i<=n; i++)
		{
			result *= i;
		}
		return result;
	}
	
	private static int Factorial(int n){  // 재귀함수 호출
		if (n == 0 || n ==1)
		{
			return 1;  //마지막 0!일때 ==> 1로 설정
		}
		//재귀호출
		return n * Factorial(n-1); // n! = 4*(4-1).....
	}
	
	private static int Fact(int n)  //3항연산자 이용 팩토리얼 구하기
	{
		return (n > 1) ? n * Fact(n-1) : 1;
	}
}