Contents
see List
재귀함수를 반복적으로 실행하다보면 즉 리턴부분에서 함수를 호
스택영역에 과부하가 걸려 에러를 일으킬수도있다.
이때 꼬리재귀를 사용하면 이를 예방할 수 있다.
일반재귀예 :
public int getFac(int end){
int min = 1;
if(end <= min){
return min;
}
return end * getFac(end-1) ;
}
꼬리재귀예 :
public int getFac(int min,int end){
if(end < 0){
return min;
}else if(end == 0){
return 1;
}else if(end == 1){
return end;
}
return getFac(min*end,end-1) ;
}
Comments ( 1 )
^^