Мы с другом обсуждали, был ли алгоритм, который мы должны были анализировать для домашней работы, был рекурсивным или нет, но он настаивает на том, что это так. Таким образом, алгоритм выглядит следующим образом:Является ли эта программа рекурсивной?
SomeAlgo(x)
{
x--;
if (x > 1)
{
SomeAlgo(x);
}
else
{
return x;
}
}
Я сказал ему, что это не хвостовая рекурсия, потому что SomeAlgo (х) не последнее утверждение будет выполняться. Нам нужен базовый случай, но мы этого не делаем. Если бы у нас был базовый случай, первый код, который будет выполняться, будет первым, и вызов к нему (который возвращает возвращаемое значение) будет последним.
Если это не рекурсивный хвост, можете ли вы сказать мне, что нужно сделать, чтобы сделать его хвостовым рекурсивным?
Какой язык программирования это? Вы получите больше просмотров, если вы укажете язык программирования, который вы используете в тегах. –