'''斐波那契数列。
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)
'''
#方法一:列表中append(),此处直接list[i]=list[i-1]+list[i-2]是不正确的,因为已经定义了list含有两个值,这样list[i]会报错,
'''
list=[0,1]
for i in range(0,10):
#list[i]=list[i-1]+list[i-2];是错误的,
list.append(list[i]+list[i+1])
print(list)
'''
#方法二:循环赋值,一点点向前推进
'''
a=0
b=1
for i in range(9):
c=a+b
print(c)
a=b
b=c
'''
#写成函数形式
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#函数都是返回某值,调用时输出此值,输出第几次的值
'''
def fib(n):
a,b = 0,1
for i in range(n-1):
a,b = b,a+b
return(b)
print(fib(10))
'''
#使用递归
'''
def fib(n):
if(n==1 or n==2):
return 1
else:
return (fib(n-1)+fib(n-2))
print(fib(10))
'''
#实现输出每次的值,每次的值都存入一个列表,注意这不是递归,要for循环
def fib(n):
if(n==1):
return [1]
elif(n==2):
return [1,1]
fibs=[1,1]
for i in range(2,n):
fibs.append(fibs[-1]+fibs[-2])
return fibs
print(fib(10))
程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、……。
在数学上,费波那契数列是以递归的方法来定义:
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)
'''
#方法一:列表中append(),此处直接list[i]=list[i-1]+list[i-2]是不正确的,因为已经定义了list含有两个值,这样list[i]会报错,
'''
list=[0,1]
for i in range(0,10):
#list[i]=list[i-1]+list[i-2];是错误的,
list.append(list[i]+list[i+1])
print(list)
'''
#方法二:循环赋值,一点点向前推进
'''
a=0
b=1
for i in range(9):
c=a+b
print(c)
a=b
b=c
'''
#写成函数形式
#!/usr/bin/python
# -*- coding: UTF-8 -*-
#函数都是返回某值,调用时输出此值,输出第几次的值
'''
def fib(n):
a,b = 0,1
for i in range(n-1):
a,b = b,a+b
return(b)
print(fib(10))
'''
#使用递归
'''
def fib(n):
if(n==1 or n==2):
return 1
else:
return (fib(n-1)+fib(n-2))
print(fib(10))
'''
#实现输出每次的值,每次的值都存入一个列表,注意这不是递归,要for循环
def fib(n):
if(n==1):
return [1]
elif(n==2):
return [1,1]
fibs=[1,1]
for i in range(2,n):
fibs.append(fibs[-1]+fibs[-2])
return fibs
print(fib(10))