[왕초보] 2의 n승 코드 질문드립니다.

import java.util.*; public class exam6_3_1 {

public static void main(String[] args) {
    // TODO Auto-generated method stub
    System.out.print("입력 ㄱ : ");
    Scanner sc = new Scanner(System.in);
    int a = sc.nextInt();
    System.out.println("2의 "+a+"승 = "+factor(a));
}
public static int factor(int num) {
    if (num==0)
        return 1;
    else
        return 2*factor(num-1);
}

}

전에 만들었던 팩토리알 코드를 응용해서 작성했습니다. 팩토리알 코드 → return n*factor(num-1); 그냥 별 생각없이 n 대신 2를 넣었는데 실행이됐습니다. 문제는 왜 제대로 출력이 되는지 이해를 못하겠습니다.

예를들어 5를 입력하면 2*4*3*2*1 로 48이 나와야 하는게 아닌지..... 고수님들 부탁드립니다.

1답변

ᕕ( ᐛ )ᕗ
로그인이 필요합니다

작성한 답변에 다른 개발자들이 댓글을 작성하거나 댓글에 좋아요/싫어요를 할 수 있기 때문에 계정을 필요로 합니다.