게시판 즐겨찾기
편집
드래그 앤 드롭으로
즐겨찾기 아이콘 위치 수정이 가능합니다.
자바 재귀메소드 관련해서 질문드립니다
게시물ID : programmer_16177짧은주소 복사하기
작성자 : ㅇㅅㅇaa
추천 : 0
조회수 : 362회
댓글수 : 6개
등록시간 : 2016/03/13 16:12:49
옵션
  • 창작글
  • 본인삭제금지
이제야 컴퓨터 공부를 시작한 완전 생초보인데요,
지금 책 보면서 혼자 자바를 공부하고 있는 상황입니다
여러분들께는 너무 쉬운 질문일 지도 몰라서 좀 쑥쓰럽네요



재귀메소드 파트에서 지금 약간 헷갈리는게

public static void main(String [] args)
{   
    System.out.println("3 factorial :" +factorial(3));
}
public static int factorial(int n)
{
    if (a==1)
        return 1;
    else
       return n*factorial(n-1);
}

-------------------------------------------------------------
지금 이게 팩토리얼 구하는 거고
n!=n*(n-1)! 이 원리를 사용한 거라는 것까지는 이해가 가는데요
그래서 n이 5라고 하면
5*factorial(4)
5*4*factorial(3)
5*4*3*factorial(2)
5*4*3*2*1
이렇게 되는 것까지는 알겠는데


요 아래 코드를 보시면
-------------------------------------------------------------


    public static void main(String[] args)
    {
    System.out.println("2의 5승:" + PowerOfTwo(5));
        System.out.println("2의 7승:" + PowerOfTwo(7));
    }

    
    public static int PowerOfTwo(int n)
    {
    if(n==0){
       return 1;
    }
    else{
    return 2*PowerOfTwo(n-1);
   
    }
   
    }

----------------------------------------

이게 2의 n승을 구하는 코드인데
위의 팩토리얼 구하는 코드와 거의 비슷하고 맨 마지막 줄만 다르잖아요

그러면 2의 5승이라고 하면
2*PowerOfTwo(4)
인데 그러면 결과적으로는 
2*4*3*2*1 인것처럼 생각되서 자꾸 헷갈리게 됩니다ㅜㅜ


이걸 지금 대충 외우고 넘길수는 있지만 그렇게 하면 안될 것 같아서
확실하게 이해하고 넘어가려고 합니다. 
어떻게 재귀 메소드를 잘 이해할 수 있을까요....
전체 추천리스트 보기
새로운 댓글이 없습니다.
새로운 댓글 확인하기
글쓰기
◀뒤로가기
PC버전
맨위로▲
공지 운영 자료창고 청소년보호