Recursion 递归问题
我有几个关于递归的问题。我在上课,正在复习笔记和课文,有点困惑: 1) 我说的对吗?迭代器和递归看起来非常相似 递归=一个引用自身的函数,它有一个基本情况来解决问题 迭代器:使用++或--遍历所有数据以获得一条信息 2) 什么是递归下降?是不是离基本情况越来越近了?那么什么是递归上升 3) 我们看到了这个递归示例,这让我很困惑:Recursion 递归问题,recursion,Recursion,我有几个关于递归的问题。我在上课,正在复习笔记和课文,有点困惑: 1) 我说的对吗?迭代器和递归看起来非常相似 递归=一个引用自身的函数,它有一个基本情况来解决问题 迭代器:使用++或--遍历所有数据以获得一条信息 2) 什么是递归下降?是不是离基本情况越来越近了?那么什么是递归上升 3) 我们看到了这个递归示例,这让我很困惑: Product of Positive Integer from 1 to n Denoted by n! => n! = 1.2.3....(n-2).(n-1
Product of Positive Integer from 1 to n
Denoted by n! => n! = 1.2.3....(n-2).(n-1).n
0! = 1 , 5! = 1.2.3.4.5 = 120, 6! = 5! . 6 = 720
n! = n . ( n – 1 )!
Definition
– If n = 0 then n! = 1
– If n > 0, then n! = n. (n-1) !
(n-1)后面为什么有感叹号?这些点是什么,比如n.(n-1)?递归和迭代是不同的。您可以在没有递归的情况下进行迭代,而递归意味着没有迭代 让我们暂时离开递归下降。那是和我有关的 这个例子是取阶乘的数学运算。感叹号的意思是“阶乘”。点表示乘法 记得吗
0! = 1
1! = 1
2! = 2*1
3! = 3*2*1 = 3*2!
4! = 4*3*2*1 = 4*3!
等等
这是一个经典问题,用于向首次看到递归的本科生演示递归:
function factorial_recursion(n) {
if (n <= 1) {
return 1;
} else {
return n*factorial(n-1);
}
}
函数阶乘递归(n){
if(n1){
对于(i=1;i点是乘法。使用点很容易混淆,但我们知道
5!=1*2*3*4*5
所以点必须是乘法。而且,!
是表示阶乘的符号。5!=5*4!
点代表乘法
function factorial_iter(n) {
var value = 1;
if (n > 1) {
for (i = 1; i <= n; ++i) {
value *= i;
}
}
return value;
}