Рекурсивным функциям для достижения успеха требуются три вещи:
- Условие выхода,
- Работа, в том числе то, что влияет на условие выхода
- Рекурсивный вызов .
Я предлагаю условие выхода быть первой вещью в вашем рекурсивном методе.
while
l oop, который у вас там, на самом деле не имеет смысла; если вы собираетесь l oop с while
, вам, вероятно, не нужен рекурсивный вызов.
Итог? Вам нужно условие выхода, которое работает.
Вот пример рекурсивной функции, которая работает:
int factorial(int n)
{
if(n == 1) return 1;
return n * factorial(n - 1);
}
, и вот как она работает:
![enter image description here](https://i.stack.imgur.com/BrGEt.gif)