JAVA 프로그래밍

문제

재귀함수를 이용하여, 정수를 입력받아 1부터 n까지의 곱 !(factorial)을 계산하는 문제입니다 이를 해결하는 다음 프로그램을 해석하세요 
숫자를 입력하세요: 3
3! = 3 * 2 * 1 = 6 

숫자를 입력하세요: 5
5! = 5 * 4 * 3 * 2 * 1 = 120 

숫자를 입력하세요: 1
1! = 1 = 1 

알고리즘

프로그램 시작 
   숫자 n 입력받기
   1부터 n까지의 곱을 계산하기
   결과 출력하기
프로그램 종료

1부터 n까지의 곱을 계산
   n! = n * ( n - 1 )!
   1! = 1, 0! = 1

프로그램 코드

	// 파일명 : ./Chapter20/FactorialRecursion.java
	import java.util.Scanner;
	 
	public class FactorialRecursion
	{
		// 1부터 n까지의 곱을 계산 
Fb		private static int factorial( int num ) {
			// n! = n * ( n - 1 )! 
			if ( num > 1 ) {
				System.out.print( num + " * " );
F1				return num *
F2				             factorial( num - 1 );
			}
			// 1! = 1, 0! = 1 
			else {
				System.out.print( "1 = " );
F3				return 1;
			}
Fe		}
				// 프로그램 시작 
1		public static void main( String[] args ) {
			Scanner scan = new Scanner( System.in );
			// 숫자 n 입력받기 
			System.out.print( "숫자를 입력하세요: " );
			int num = scan.nextInt();
		 
			// 1부터 n까지의 곱을 계산하기 
			System.out.print( num 			 + "! = " );
2			int result =
3			             factorial( num );
			 
			// 결과 출력하기 
			System.out.print( result );
			scan.close();
		// 프로그램 종료 
4		}
	}

실행 순서

 
 					※ 실행순서 및 메모리상태는 A키(이전) 및 D키(다음)를 눌러도 확인할 수 있습니다