Может ли кто-нибудь помочь мне понять, как эта программа доходит до 8 в качестве конечного результата, ее жарки моего мозга!Пример рекурсии в C++
#include <iostream>
#include <string>
using namespace std;
int unknown(int x);
int main()
{
cout << unknown(1);
}
int unknown(int x)
{
int result, y = 2;
if (x >= 6)
return 1;
else
{
result = unknown(x + 2) * y;
return result;
}
}
Пройдите через него по одному шагу за раз. –
Правильный инструмент для решения таких проблем - ваш отладчик. Перед тем, как просить о переполнении стека, вы должны пропустить свой код по очереди *. Для получения дополнительной информации, пожалуйста, прочтите [Как отлаживать небольшие программы (Эрик Липперт)] (https://ericlippert.com/2014/03/05/how-to-debug-small-programs/). Как минимум, вы должны \ [изменить] ваш вопрос, чтобы включить пример [Минимальный, полный и проверенный] (http://stackoverflow.com/help/mcve), который воспроизводит вашу проблему, а также замечания, сделанные вами в отладчик. –
@eggo, или если отладчик кажется сложной перспективой для вашего обжаренного мозга (эй, мы все там были), добавьте некоторые заявления о печати и продумайте, что распечатывается. –