斐波那契數列求解python3

1、基本方法

def Fib(n):

if n <=1:

return n

else:

return Fib(n-1) + Fib(n - 2)

x = eval(input("Please input a  num:"))

if x <0:

print("Please input a right num!")

else:

for i in range(x):

print(Fib(i))


2、建個類

class Fib():

def __init__(self, num):

a, b, list = 0, 1, []

for i in range(num):

list.append(a)

a, b = b, a + b

self.numbers = list

def __str__(self):

return str(self.numbers)

__repr__ = __str__


n = eval(input("Please input a num:"))

print(Fib(n))

3、使用__call__改進  --- 類實例變爲可調用對象

class Fib(object):
    def __call__(self, num):
        a, b, list = 0, 1, []
        for i in range(num):
            list.append(a)
            a, b = b, a + b
            self.numbers = list
        return list


f = Fib()
print f(10)





發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章