递归中的锚点大小写定义
Anchor case definition in recursion
锚大小写定义如下:
为参数的一个或多个值指定函数的值。
现在让我们看一下递归阶乘函数:
int fact(int n)
{
if (n == 0)
return 1;
else
return n * fact(n - 1);
}
我理解这一点:"指定了函数的值......"我明白了;当函数到达锚点大小写时,它只返回 1。
我不明白的是,函数的值是如何"为参数的一个或多个值指定的"?
定义是在谈论函数参数还是参数的数学术语?我只是在弹出运行时堆栈时没有看到为 [function] 参数的一个或多个值指定了函数的值。
某些递
归函数具有多个基本情况。例如,斐波那契数列为输入0
和1
指定了值,并为更高的值递归。
unsigned int fib(unsigned n) {
if (n == 0 || n == 1) {
return 1;
} else {
return fib(n-1) + fib(n-2);
}
}
这是指功能参数。 这是函数的静态属性;它与运行时的瞬态无关。 "当运行时堆栈被弹出时"不是问题。
这个概念是,每次递归都必须使我们更接近答案。 这意味着在调用树的底部必须有一个绝对(非递归)值。 这个答案就是锚案例。
某些进程将只有一个定位点。 斐波那契有两个。 有些有更多,具体取决于该特定过程的"底部"在哪里。
相关文章:
- 在提升multi_index容器中,是否定义了"default index"?
- #定义c-预处理器常量..我做错了什么
- 用C++中的一个变量定义一个常量
- 部分定义/别名模板模板参数
- C++映射:具有自定义类的运算符[]不起作用(总是返回0)
- #为""定义宏;静态";针对不同的上下文
- 如何确保C++函数在定义之前声明(如override关键字)
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 当类在C++中定义时,有什么方法可以"register"类吗?
- 在命名空间中定义函数还是限定函数
- 此代码是否违反一个定义规则
- 编译C++时未定义的引用
- C++函数中未定义的开关大小写
- 递归中的锚点大小写定义
- 当C/C++程序切换语句转到未定义的大小写并且缺少默认值时,它的正确行为是什么:
- 使用结构中定义的枚举作为C++中的大小写常量
- VS2010上不区分大小写的字符串比较-为每个版本的VS播放#if定义的语句
- 在c++中,宏/定义区分大小写
- c++ #定义和连接大小写(我使用gcc)
- 为不区分大小写的映射定义模板