递归:
在递归算法执行过程中,计算机系统必定会用到的数据结构是栈;
栈的特点后进先出,再想想递归调用方法。最后调用的那次先出来,然后逐个出来;
递归的过程,利用栈保存现场地址,然后将数据入栈,运算,后出栈,返回结果
EX1:
int f(
int
n) {
if
(n<=3)
return
1;
else
return
f(n-2)+f(n-6)+1;
}
EX2:
class
program
{
static
void
Main(string[] args)
{
int
i;
i = x(x(
8
));
}
static
int
x(
int
n)
{
if
(n <=
3
)
return
1
;
else
return
x(n -
2
) + x(n -
4
) +
1
;
}
}
EX3:
int f(int x) {
if
(x <= 2)
return
1;
return
f(x - 2) + f(x - 4) + 1;
}