函数递归学习12.15与作业练习

        1、今天开始学习递归,之前其实看过一遍视频,但是没有动手实操,没有体会到写出递归函数的难度。现在体会到了,初学的我真的写不出来!!!!不过看完讲解模仿写出代码这还是可以的。

        我认为递归的核心思想在于大事化小,小事化了,其实就是把一个大问题分解成一个个比原来更小但是相同的问题,跟数学中的递推公式公式差不多,An推An-1,An-1推An-2……直到最后。这最核心的其实还是思想的运用,理清解决问题的思想,那么代码也就很好写了。

       鹏哥还提到函数栈帧的创建和销毁,还没看……

       2、 第二个问题,编写函数不允许创建临时变量,求字符串的长度。这里面其实涉及到了指针的问题,用递归的方法来解决的话,其中就涉及到将字符串不断拆成少一个字符的字符串,怎么来表示少一个字符的字符串,这就要用到指针。

        写下递归的代码时我是有疑问的,为什么while里面写的是*ch,而my_strlen里面写的则是ch,其他就没啥啦,递归这个东西确实很实用,省代码,不用那么多,思想确实挺精妙的。

       16号今天学完数组,我想我大概可以解释下这个问题了 。my_strlen中ch表示数组名,其实相当于数组的地址,而while里面*ch是首元素的地址。

       3、P49的讲解练习中,提到了一个辗转相除法求两个数的最大公因子,这个数学方法不太懂,但是代码还是可以写出来的,写代码真耗费时间啊……太费时间了

       4、如何实现正负交替呢,可以令n=-n,然后在套上循环,从而实现每次循环正负变动。下面代码是用来计算1-1/2+1/3+……+1/100的,这个正负循环确实实现的很巧妙,也很高效。

 5、学了冒泡排序算法,这个冒泡排序感觉没有二分查找效率高,二分查找效率真的高,只是需要有序的数据。这个算法代码不是很熟悉,后面多写几遍。

        5、鹏哥讲解的函数递归练习中有道题我感觉很难,就是函数递归逆序那道,按题目中的要求来的话,我感觉鹏哥讲解的都很难,一起都没有遇到过这种情况,后面再看看这道题吧,现在是没有时间了。 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值