#pragma warning(disable:4996)
#include <stdio.h>
int Recursive(int a);
int main(){
int a;
printf("정수 하나를 입력하세요.");
scanf("%d", &a);
printf("%d",Recursive(a));
return 0;
}
int Recursive(int a) {
if(a==0){
return 1;
}
return(a*Recursive(a - 1));
}
이거 펙토리얼 구하는건데 if(a==0) 에서 무조건 1 반환해서 무조건 1나오는거 아님? 왜 정상적으로 펙토리얼 나옴?
처음 a는 0이 아니잖아. 계속 호출하면서 줄어드는 거지.
그래 줄어들다 결국 1이 되서 return 1때문에 1 반환하는거 아님?
도대체 a*Recursive(a - 1)은 어디 저장되는거임? return이 변수역활을 대신 해주는거임?
ㅇㅇ. 반환 값도 변수 쓴다.