재귀함수를 반복적으로 실행하다보면 즉 리턴부분에서 함수를 호

스택영역에 과부하가 걸려 에러를 일으킬수도있다.

이때 꼬리재귀를 사용하면 이를 예방할 수 있다.

일반재귀예 :

       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) ;
}