#include <stdio.h>
long recursiveFactiroal(int n);
int main()
{
int num = 5;
printf(" %d ", recursiveFactiroal(num));
}
long recursiveFactiroal(int n)
{
if (n > 0)
{
return n * recursiveFactiroal(n - 1);
}
else
return 1;
}
이렇게 재귀호출 이용해서 팩토리얼을 짰는데, 마지막에 return 1을 줘야 하는 이유를 모르겠습니다...
왜 for문 활용할 때처럼, return n; 이 아닌 return 1이 되어야 하는 건가요?
ㅋㅋ 병신인가??
ㄹㅇ 병신인듯 ㅜㅜ
해당 댓글은 삭제되었습니다.
아아 1로 해야 recursivrFactorial(1)을 받겠네요. 바로 이거였노 예아ㅋㅋㅋ 감사합니다.
게이야.. 어케했노...
0에 뭘 곱하든 0되잖아
fn(2)를 구한다고 하면 2 곱하기 fn(1)고 fn(1)은 1곱하기 fn(0)인데 else에서 return n을 하면 0을 곱하겠지?
재귀의 의도가 n부터 -1 하면서 1이 될때까지 곱하겠단 의도라 리턴 n 이 아닌 리턴 1인듯