递归练习
1、求阶乘
方法一: s = 1 sum = 0 for i in range(1,3): s = s*i sum += s print(s) print(sum) def fn(n): if n == 1: return 1 else: return fn(n-1) * n print(fn(3)) def fn(n): return 1 if n == 1 else fn(n-1) * n print(fn(3)) def fn1(n,a=1): if n == 1: return a a = a * n return fn1(n-1,a) print(fn1(3))
def fac(n): if n < 3: return n return fac(n-1) * n print(fn(3))
2、猴子吃桃
def foo(n=10): if n == 1: return 1 return (foo(n-1) + 1) * 2 def foo(n=1): if n == 10: return 1 return (foo(n + 1) + 1) * 2
def peach(days=9,p=1): p = 2 * (p + 1) return p if days == 1 else peach(days - 1,p) print(peach())
3、得到1234转换成[4,3,2,1]
list(map(int,reversed(str(1234))))
list(map(int,sorted(str(1234),reverse=True)))
x = str(1234) target = [] def revert(data): if not data: return target target.append(int(data[-1])) return revert(data[:-1]) revert(x)
x = str(1234) def revert(data,target = []): if not data: return target target.append(int(data[-1])) return revert(data[:-1],target) revert(x)

浙公网安备 33010602011771号