第一题

我的思路:
循环判断阶乘尾数是否为0
但似乎阶乘太大溢出了


标答的思路是
寻找阶乘中有几个尾数0,就是在找阶乘里有几个因子10
如11!=11*10*(3*3)*(2*4)*7*(2*3)*5*4*3*2*1
由于10只能由2*5组成,所以就是在找阶乘中有几对2和5,由于2肯定比5多,所以只要找有几个5就可以了,
因此是return n/5+trazeroes(n/5)

注:递归式由数学关系得到

第二题


第三题


思路:递归思想,先写结束条件,当需要计数的时候,多思考在return里计数,return里的不仅是调用函数命令,也将他视作为一个数
第四题




要求二叉树的深度,就求左子树和右子树深度最大值再加一,左子树和右子树也可以这么求,当访问到最下面的节点时,return,他的值是1,
注:此时max(root->left)和max(root->right)可视为同时执行
博客探讨了计算阶乘时遇到的溢出问题及解决思路。通过分析11!的实例,指出阶乘尾数为0的条件是因子10的数量,实质上是寻找2和5的配对。文章提出了一个递归解决方案,重点在于寻找阶乘中5的个数,因为2的出现次数总是多于5。此外,还介绍了如何计算二叉树的深度,利用递归思想,从根节点出发,直到达到叶子节点,返回1,并取左右子树的最大深度加1作为整体深度。
2791

被折叠的 条评论
为什么被折叠?



