Я новичок в рекурсии, и я сделал этот код
#include <stdio.h>
int ft_recursive_factorial(int nb)
{
if (nb > 1)
{
return(nb * ft_recursive_factorial(nb - 1));
}
return(1);
}
int main()
{
printf("%d\n",ft_recursive_factorial(3));
return(0);
}
Вывод
6
Я думаю, что код правильный, но я не могу понять, что происходит в стеке ... На мой взгляд, это происходит:
| Стек | | return (1 * ft_recursive_factorial (1 - 1)) | | return (2 * ft_recursive_factorial (2 - 1)) | | return (3 * ft_recursive_factorial (3 - 1)) | В этой схеме код будет остановлен на return(1 * ft_recursive_factorial(1 - 1))
из-за ответного ответа (в моей голове).
Может кто-нибудь объяснить мне, что происходит в стеке? пожалуйста.