루프 내에서 재귀 함수를 호출 할 때 두 가지 문제가 발생합니다. 다음 샘플 코드 고려해루프 내에서 재귀 함수 호출
int fact(int x)
{
if(x == 1)
return 1;
return x*fact(x-1);
}
int main() {
int n = 2;
for(int i = 0; i < n; i++);
std::cout << fact(4) << std::endl; // 24 ??
return 0;
}
문제 1 :이 프로그램에 대한 나의 예상 결과는 24 24
(두 번 24
프린터로)하지만 실제 결과는 내가 단 하나의 24
을 얻었다.
문제 2main()
함수가 반복적으로 호출 된 이유는 무엇입니까? 재귀 적으로 main 함수를 호출하지 않습니다.
누군가 나에게 다중 출력을 얻으려면 루프 내부에서 재귀 함수를 호출하는 방법에 대한 생각을하면 좋을 것입니다.