复习
1. 10进制 ⇒ \Rightarrow ⇒ 2进制
除2取余,从低位到高位
存储到字符串中,从高位到低位
def d2b(n):
if n>1:
d2b(n//2)
print(n%2,end='')
d2b(4)
出口:
条件,值确定
(一)return
(二)函数体执行结束
2. 斐波那契数列递归程序
def fib(n):
if n==0 or n==1:
return 1
else:
return fib(n-1)+fib(n-2)
fib(4)
def fab(max):
n,a,b=0,0,1
while n<max:
yield b
a,b=b,a+b
n+=1
f=fab(10)
for m in f:
print(m,end=' ')
pre={0:1,1:1}
def fib(n):
if n in pre:
return pre[n]
else:
newvalue=fib(n-1)+fib(n-2)
pre[n]=newvalue
return newvalue
print(fib(100))