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

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

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

일반재귀예 :

       public int getFac(int end){

\t\tint min = 1;

\t\tif(end <= min){
\t\t\treturn min;
\t\t}

\t\treturn end * getFac(end-1) ;
\t}


꼬리재귀예 :

       public int getFac(int min,int end){


\t\tif(end < 0){
\t\t\treturn min;
\t\t}else if(end == 0){
\t\t\treturn 1;
\t\t}else if(end == 1){
\t\t\treturn end;
\t\t}

\t\treturn getFac(min*end,end-1) ;
\t}