int f(int n)

{


if (n==0)

return 1;


else

return n*f(n-1);




위는 팩토리얼정수를 구하는 재귀함수인데요.

이해가가지않는게 제가 여태껏 배운걸로 보면 n=5를 전달받을경우


  5*f(5-1);        // n=4    , 20 반환

  4*f(4-1);        // n=3    , 12 반환

  3*f(3-1);        // n=2    , 6 반환

  2*f(2-1);        // n=1    , 2 반환

  1*f(1-1);        // n=0    , 1 반환하며 함수를 탈출하게되는데,


그럼 main 함수에서 


result=f(5);를 했을떄

출력값은 20+12+6+2+1= 41이 되어야하는거아닌가요? 왜 출력하면 120이 나올까요??... ㅠㅠㅠㅠ


그리고 함수 탈출조건에 return 0;이 아닌 return 1; 이 나오는 이유는 뭔가요??


독학인데다가 교재엔 너무 부실하게 설명되어있어서 물어볼데가 여기밖에없네요 답부탁드립니다!ㅜㅜ