python中递归计算

https://www.cnblogs.com/panlq/p/9307203.html

https://www.cnblogs.com/yoyoketang/p/10114598.html

 

题目:用python实现1-100求和计算

用range实现1-100循环相加。

函数方法:

def sum():
    s = 0
    for i in range(101):
        s = s+i
    return s
print(sum())

 

新学了reduce函数,尝试实现后发现更简单。

reduce函数:

from functools import reduce    #需引入reduce函数
re = reduce((lambda x,y: x+y),list(range(101)))
print(re)  #可直接输出

 

题目:计算N!

如果n=3,即为3*2*1

from functools import reduce
a = 3
b = reduce(lambda x,y:x*y,range(1,a+1))
print(b)

 

题目:计算斐波那契数列

1、1、2、3、5、8、13.....规律为从3开始的每一项都等于其前两项的和,这是斐波那契数列。

求100以内的斐波那契数列

a,b = 0,1
while b < 100:
    print(b, end=",")
    a, b = b, a+b

 

求20个斐波那契数列

def fib_loop(n):
  a, b = 0, 1
  for i in range(n + 1):
    a, b = b, a + b
  return a
for i in range(20):
  print(fib_loop(i), end=',')

 

题目:计算幂的递归

比如3*3*3*3,4*4*4*4

def mi(x,n):
    if n == 0:
        return 1
    else:
        return x*mi(x,n-1)
print(mi(3, 4))
print(mi(4, 4))

 

posted @ 2020-05-13 20:09  shenyin  阅读(1014)  评论(0编辑  收藏  举报