Contents
see List재귀함수를 반복적으로 실행하다보면 즉 리턴부분에서 함수를 호
스택영역에 과부하가 걸려 에러를 일으킬수도있다.
이때 꼬리재귀를 사용하면 이를 예방할 수 있다.
일반재귀예 :
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}