c++ - 这个阶乘程序内部发生了什么?
问题描述
当我编写以下代码时,我只是在使用递归处理阶乘问题。
我知道我可以直接返回阶乘。但是我创建了一个变量结果并编写了下面的代码。现在我想知道的是我没有创建n(我想计算的阶乘)没有。过程中的结果变量?因为每当调用我的函数阶乘时,都会创建结果变量,并且每个结果变量都会保存一些值。
long long factorial(long long param) {
long long result;
if (param == 1) return 1;
else {
result = param * factorial(param - 1);
}
return result;
}
我知道这不是一个好的代码,我没想到这会给我写答案。但令我惊讶的是,它是。我想知道这个程序中发生了什么。
解决方案
您的函数是递归函数。您可以在此处阅读有关递归和递归调试的信息:
推荐阅读
- sql - Oracle SQL 正则表达式 RegExp_SubStr End Of Line (chr(10) 在搜索文本中返回 null
- node.js - 使用 Node.js 为本地服务器配置域名
- javascript - 为什么 JavaScript 保留关键字允许作为变量名?
- mysql - 写通信包超时
- c# - 如何将区域列表与“地址”(字符串)匹配并获取列表和字符串中都存在的区域 Asp.net core
- javascript - Cucumber-js 中的装饰步骤实现
- linux - 在 bash 中定义标志参数
- pycharm - graphviz.backend.ExecutableNotFound:未能执行 ['dot', '-Tpng'],请确保 Graphviz 可执行文件位于系统的 PATH 中
- jquery - 使用jquery更改属性
- python - Ubuntu Buildozer JAVA_HOME 设置为无效目录