当我编写以下代码时,我只是在使用递归来解决阶乘问题。
我知道我可以直接返回阶乘。但是我创建了一个变量结果并编写了下面的代码。 现在我想知道的是我还没有创建n(我想计算阶乘的数字)否。过程中的结果变量?因为每当调用我的函数阶乘时,都会创建结果变量,并且每个结果变量都会保存一些值。
long long factorial(long long param) {
long long result;
if (param == 1) return 1;
else {
result = param * factorial(param - 1);
}
return result;
}
我知道这不是一个好的代码,我没想到这会给我书面答案。但令我惊讶的是,它是。我想知道这个程序中发生了什么。
最佳答案
你的函数是一个递归函数。您可以在此处阅读有关递归和递归调试的信息:
关于c++ - 这个阶乘程序中发生了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57535299/