递归:程序调用自身的编程技巧
一个过程或函数在其定义或说明中国直接过间接调用自身的一种方法
通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解
只需少量的程序就可描述出解题过程中所需的多次重复计算,大大减少程序的代码量
思考方式在于:把大事化小
%d打印有符号的数(有正负),%u 打印无符号的数
★:递归的两个必要条件:1、存在限制条件,满足限制条件时,递归不再继续。
2、每次递归之后,越来越接近这个限制条件
void print(unsigned n)
{
if (n > 9)
{
print(n / 10);
}
printf("%d", n % 10);
}
栈区:局部变量、函数的形参 每一次函数的调用都会在栈区申请空间
迭代:有些用递归来做可能效率低下,可以考虑用迭代去做,比如斐波那契数列。
递归有可能会出现栈溢出