首页 > 解决方案 > 这个阶乘程序内部发生了什么?

问题描述

当我编写以下代码时,我只是在使用递归处理阶乘问题。

我知道我可以直接返回阶乘。但是我创建了一个变量结果并编写了下面的代码。现在我想知道的是我没有创建n(我想计算的阶乘)没有。过程中的结果变量?因为每当调用我的函数阶乘时,都会创建结果变量,并且每个结果变量都会保存一些值。

long long factorial(long long param) { 
    long long result;
    if (param == 1)  return 1;
    else {
        result = param * factorial(param - 1);
    }
    return result;
}

我知道这不是一个好的代码,我没想到这会给我写答案。但令我惊讶的是,它是。我想知道这个程序中发生了什么。

标签: c++cfactorial

解决方案


您的函数是递归函数。您可以在此处阅读有关递归和递归调试的信息:

https://www.programiz.com/cpp-programming/recursion

https://beginnersbook.com/2017/08/cpp-recursion/


推荐阅读