이제야 컴퓨터 공부를 시작한 완전 생초보인데요,
지금 책 보면서 혼자 자바를 공부하고 있는 상황입니다
여러분들께는 너무 쉬운 질문일 지도 몰라서 좀 쑥쓰럽네요
재귀메소드 파트에서 지금 약간 헷갈리는게
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 인것처럼 생각되서 자꾸 헷갈리게 됩니다ㅜㅜ
이걸 지금 대충 외우고 넘길수는 있지만 그렇게 하면 안될 것 같아서
확실하게 이해하고 넘어가려고 합니다.
어떻게 재귀 메소드를 잘 이해할 수 있을까요....