JAVA 프로그래밍

문제

재귀함수를 이용하여, 정수를 입력받아 1부터 n까지의 곱 !(factorial)을 계산하는 문제입니다 이를 해결하는 프로그램의 다음 실행상태에 대해 빈칸을 채우세요 

프로그램의 실행순서 및 실행상태

1  public static void main( String[] args ) {  

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

3                factorial( num );

Fb  private static int factorial( int num ) {  
                       main()
    num  3 
()
    num

3 * 

F2                 factorial( num - 1 );   

Fb  private static int factorial( int num ) {  
                       main()
    num  3 
()
    num  3 
()
    num

2 * 

F2                 factorial( num - 1 );   

Fb  private static int factorial( int num ) {  
                       main()
    num  3 
()
    num  3 
()
    num  2 
()
    num

1 = 

F3    return 1;      
                       main()
    num  3 
()
    num
()
    num
()
    num
return값

Fe  }

F1    return num *    
                       main()
    num  3 
()
    num  3 
()
    num  2 
return값

Fe  }

F1    return num *    
                       main()
    num  3 
()
    num  3 
return값

Fe  }

2   int result = 
                       main()
    num  3 
result

6

4  }


프로그램 코드

	import java.util.Scanner;
	
	public class FactorialRecursion
	{		
Fb		private static int factorial( int num ) {		
			if ( num > 1 ) {
				System.out.print( num + " * " );
F1				return num *				
F2				             factorial( num - 1 );			
			}
			else {
				System.out.print( "1 = " );						 			
F3				return 1;						
			}
Fe		}
1		public static void main( String[] args ) { 	
			Scanner scan = new Scanner( System.in );
			System.out.print( "숫자를 입력하세요: " );
			int num = scan.nextInt();
		
			System.out.print( num 			 + "! = " );
2			int result = 
3			             factorial( num );
			
			System.out.print( result );
			scan.close();
4		}
	}