1. 程式人生 > >python學習系列---斐波那契數列的多種實現

python學習系列---斐波那契數列的多種實現

#iterator verstion
class FibIter(object):
    def __init__(self, num):
        super(FibIter, self).__init__()
        self.num = num
        self.n, self.a, self.b = 0, 0, 1

    def __iter__(self):
        return self

    def next(self):
        if self.n < self.num:
            self.a, self.b = self.b, self.a + self.b
            self.n += 1
            return self.a
        else:
            raise StopIteration


@time_calc
def do_fib_iter
(n):
    return [result for result in FibIter(n)]

do_fib_iter(100000)