120
简写:
def fact(n): if n <=1: return 1 else: return fact(n - 1) * n fact(5)120
求字符串reverse 如果用递归算法, 一定要有终止条件 def reverse(word): if word == "": return word else: subProblem = word[1:] subSolution = reverse(subProblem) solution = subSolution + word[0] return solution reverse("abc")‘cba’ 简写:
def reverse(word): if word == "": return word else: return reverse(word[1:]) + word[0] reverse("abc")‘cba’
递归算法很简单,也很容易应用, 但是,能第一时间想到的确很少, 算法在理解的基础上,很容易记忆, 代码量很少, 却能解决复杂的问题, 比如汉诺塔, 如果笔算的话, 很难, 单用递归, 很容易解决。递归就是把大问题, 分解成无数的小问题, 小问题的结果提供给大问题, 再解决整个问题。 4. N 皇后问题