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

조회수 267회

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 답변

답변을 하려면 로그인이 필요합니다.

Hashcode는 개발자들을 위한 무료 QnA 사이트입니다. 계정을 생성하셔야만 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)

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

Hashcode는 개발자들을 위한 무료 QnA사이트 입니다. 계정을 생성하셔야만 글을 작성하실 수 있습니다.