基于Python实现斐波那契数列。
热心的哈密瓜,数据线:使用循环,通过yield生成器返回结果,使用时通过list转换为列表。这种方法效率更高,占用空间较小;wwdhb:使用递归实现,效率很低,占用内存较高。n=40时,热心的哈密瓜,数据线耗时不足1s,wwdhb耗时68s。
import timedef fib(n): a = 0 b = 1 for i in range(n): yield b a, b = b, a + bdef fib_recursive(n): n = int(n) if n <= 0: raise Exception('请输入大于0的值!') if n == 1 or n == 2: return 1 else: return fib_recursive(n - 1) + fib_recursive(n - 2)if __name__ == '__main__': t1 = time.time() print(list(fib(40))) t2 = time.time() print(fib_recursive(40)) t3 = time.time() print('---计算耗时---:nt循环实现:%snt递归实现:%sn' % (t2 - t1, t3 - t2))