函数的递归和迭代

递归:程序调用自身的编程技巧

一个过程或函数在其定义或说明中国直接过间接调用自身的一种方法

通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解

只需少量的程序就可描述出解题过程中所需的多次重复计算,大大减少程序的代码量

思考方式在于:把大事化小

%d打印有符号的数(有正负),%u 打印无符号的数

★:递归的两个必要条件:1、存在限制条件,满足限制条件时,递归不再继续。

                                           2、每次递归之后,越来越接近这个限制条件

void print(unsigned n)
{
    if (n > 9)
    {
        print(n / 10);
    }
    printf("%d", n % 10);
}

栈区:局部变量、函数的形参 每一次函数的调用都会在栈区申请空间

迭代:有些用递归来做可能效率低下,可以考虑用迭代去做,比如斐波那契数列。

递归有可能会出现栈溢出

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值