函数应用:递归函数

        递归,是某个函数直接或者间接地调用自身,这样原问题的求解就转换为了许多性质相同但是规模更小的子问题。求解时只需要关注如何把原问题划分成符合条件的子问题,而不需要过分关注这个子问题是如何被解决的。根据C语言函数调用,我们学习递归思想,下面来看例题:

1.

这个式子就是著名的勒让德多项式,根据函数调用可以写出程序如下:

需要注意的是在函数编写过程上不要出差错。

我承认这道问题确实是比较无聊比较无脑,但是其中的精神需要我们值得思考,看到那么长的一串数字我们需要用到长整型(ong long int),下面看程序:

        这不就类似于斐波那契数列吗?!通过寻找规律我们得到了上面的程序,十分简练,但是我们需要注意,在输出环节会出现一些问题,在输入60的时候我们需要等很长时间需要计算机去计算,重复计算很多步骤,本人亲试,输入50的时候结果输出长达一分钟之久!更别提60了,虽然最后都能输出结果,但是效率很低,所以我们要对程序进行改进,我们现在主要解决的就是重复计算的问题,那么究竟该如何是好,或许我们可以用数组存储计算的那个数,这样下一次计算就很快了!来看下方的改进程序,改进程序如下:

后面学到的动态规划也经常使用数组存储一定的状态,下面是输出结果:

以上就是递归函数的全部内容。

        

  • 10
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值