递归的简单运用
递归最核心的思想是:每一次递归,整体问题都要比原来减小,并且递归到一定层次时,要能直接给出结果!
1.高斯求和问题,1+2+3+4+…+99+100,
def sum_number(n): if n <= 0: return 0 return n+sum_number(n-1) sum_number(100)
2.评论楼的递归写法
如果有这么一个树形结构的评论系统(博主的博客评论系统): 1--直接对文章的评论 1.1--对评论1的回复 1.1.1--对评论1.1的回复 1.1.2--对评论1.1的回复 1.1.3--对评论1.1的回复 1.2 --对评论1的回复 1.2.1--对评论1.2的回复 1.3 --对评论1的回复 2--直接对文章的评论 2.1 --对评论2的回复 2.1.1--对评论2.1的回复 2.2 --对评论2的回复 3--直接对文章的评论 4--直接对文章的评论
现在的要求是,将所有的评论,根据评论的关系,放入一个列表内,然后逐一打印出来
lis = [] all_top_comments = ["顶级评论1","顶级评论2","顶级评论3","....."] def get_comment(comments): for comment in comments: lis.append(comment) child_comments = comment.child() # 假设有一个child方法获取当前评论的所有子评论。 if len(child_comments) > 0: # 如果有子评论的话,就递归查找下去,否则回退 get_comment(child_comments) get_comment(all_top_comments)