Categories: Java 언어Korean

Java 총 정리[42. 메소드 문제 4]

메소드 문제 4

이전 걸음에서 재귀 메소드에 대해서 배웠습니다. 재귀 메소드를 활용해서 문제를 풀어봐야 좀 더 재귀 호출과 함께 재귀 메소드를 알 수 있지 않을 까요? 저도 당연히 재귀 메소드에 대해 문제를 같이 해본다면 개념의 이해와 활용을 더욱 잘 할 수 있다고 생각을 합니다. 

메소드 문제이지만 재귀 메소드 같은 경우에는 같은 메소드를 계속 호출을 하기 때문에 똑같은 명령문에 대한 반복을 이해하고 제어를 할 수 있도록 해야 합니다. 이번 문제는 일반적으로 재귀 메소드에서 많이 볼 수 있는 문제이기 때문에 난이도는 낮을 수 있지만 다시 한번 재귀 메소드를 이해를 할 수 있기 때문에 이 글을 끝까지 읽고 문제를 풀어보시면 좋습니다.

메소드 Factorial 풀어 보겠습니다. 메소드 호출을 많이 하지는 않지만 재귀 호출이라는 특수함을 가지고 있기 때문에 소스가 짧고 간단하다고 느낄 수 있지만 한번 같이 보시고 공부를 하신다면 분명 재귀 메소드에 대한 이해를 하실 수 있습니다.

메소드 Factorial

5! => 5 Factorial입니다. 이렇게 5 Factorial이 되면 5이하의 값을 모두 곱한 값을 구하는 문제 입니다.

1 * 2 * 3 * 4 * 5 = 120이 나오게 됩니다. 

위와 같이 Factorial을 재귀 메소드를 통해서 구현을 해주세요.

참고

※ 메소드 연습을 위해서 static이라는 명령어를 사용하여 메소드를 바로 메모리에 올려 사용을 할 수 있게 문제를 풀어줍니다.

위 문제를 Class를 생성하고 Main문에 소스를 구현해 주세요.

실행 관련 걸음 : 다섯 걸음, 여섯걸음

참고해주세요



public class FactorialTest {

    public static int factorialRun(int num) {
        if (num == 1){
            return 1;
        }
        else{
            //Fcatorial 값 출력
            System.out.println("factorial(" + num + ")");
            return  factorial(num - 1) * num;
        }
 
    }
 
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.print("숫자 입력 : ");
        int num = sc.nextInt();
        System.out.println(factorialRun(num));
    }
 
}




        

생각을 해보기

이전 내용인 재귀 메소드에 대해서 한번 자세히 보면 이번 Factorial 문제도 이해를 좀 더 잘 할 수 있습니다. 또한 꼭 분석을 통해 동작에 대한 이해를 하신다면 분명히 도움이 되실 수 있습니다.

※ 참고로 이 문제를 재귀 메소드에 대해 생각을 하시면 좋습니다.

함께 보면 좋은 글

§ Java 첫 걸음 변수와 자료형
§ Java 두 걸음 연산자
§ Java 세 걸음 형 변환
§ Java 네 걸음 Eclipse 설치
§ Java 다섯 걸음 Eclipse 개발 준비
§ Java 여섯 걸음 출력
§ Java 일곱 걸음 출력
§ Java 여덟 걸음 문제 풀기 1
§ Java 아홉 걸음 한글 깨짐
§ Java 열 걸음 제어문
§ Java 열 한걸음 if문
§ Java 열 두걸음 switch문
§ Java 열 세걸음 while문
§ Java 열 네걸음 for문
§ Java 열 다섯걸음 중첩 및 주의 사항
§ Java 열 여섯걸음 문제 1
§ Java 열 일곱걸음 문제 2
§ Java 열 여덟걸음 break continue
§ Java 열 아홉걸음 random
§ Java 스물 걸음 별 찍기 1
§ Java 스물 한걸음 별 찍기 2
§ Java 스물 두걸음 가위 바위 보 게임
§ Java 스물 세걸음 배열
§ Java 스물 네걸음 배열 활용
§ Java 스물 다섯걸음 Rando 활용 문제
§ Java 스물 여섯걸음 숫자 야구 게임
§ Java 스물 일곱 걸음 배열 숫자 야구 게임
§ Java 스물 여덟 걸음 다차원 배열
§ Java 스물 아홉 걸음 다차원 배열 심화
§ Java 서른 걸음 다차원 배열 문제
§ Java 서른 한 걸음 가변 배열
§ Java 서른 두 걸음 메소드(함수)
§ Java 서른 세 걸음 메소드형태
§ Java 서른 네 걸음 메소드 기초활용
§ Java 서른 다섯 걸음 메소드 문제1
§ Java 서른 여섯 걸음 메소드 구조 및 활용
§ Java 서른 일곱 걸음 메소드문제 2
§ Java 서른 여덟 걸음 Call by Value
§ Java 서른 아홉 걸음 Call by Reference
§ Java 마흔 걸음 메소드 숫자 야구 게임
§ Java 마흔 한걸음 재귀 메소드
Dolphin

Recent Posts

Java 총정리[97. Java GUI]

Java GUI Java GUI에 대해서 이번 걸음에서 배움으로써 GUI에 전반적인 지식과 Java GUI를 구현하는 방법…

7개월 ago

Java 총정리[96. Java TCP 통신 프로그램 구현]

Java TCP 통신 프로그램 구현 Java TCP 통신 프로그램 구현을 위해서 이전 걸음에서 쓰레드에 대한…

7개월 ago

Java 총정리[95.쓰레드 통신]

쓰레드 통신 이전 걸음에서 쓰레드의 임계영역에 대해서 같이 공부를 했습니다. 동기화에 대한 개념을 계속적으로 하고…

7개월 ago

Java 총 정리[94. 쓰레드 임계영역]

쓰레드 임계영역 이전 걸음에서 쓰레드의 동기화에 대해서 같이 공부를 했습니다. 동기화에 대한 전반적인 내용을 공부하고…

8개월 ago

Java 총 정리[93. 쓰레드 동기화]

쓰레드 동기화 이전 걸음에서 계속 쓰레드에 대해서 공부를 하고 있습니다. 쓰레드는 상당히 중요한 개념이기 때문에…

8개월 ago

Java 총 정리[92. 쓰레드 join()]

쓰레드 join() 이전 걸음에서 쓰레드의 전반적인 실행 흐름에 대해서 공부를 했습니다. 이제 배운 실행 흐름…

8개월 ago

This website uses cookies.