如何用简单方法实现指定数的斐波那契数列?现有代码仅返回普通求和
生成指定长度斐波那契数列的简单方法
你提供的代码之所以只输出普通求和结果,核心问题是逻辑错误:每次循环都把b重置为1,然后单纯累加循环变量i,完全没遵循斐波那契数列每个数等于前两个数之和的核心规则。
下面是几种简单易懂的实现方式:
基础迭代法(直接打印)
这是最适合初学者的实现,逻辑清晰且高效:
def fib(n): # 初始化前两个斐波那契数 a, b = 0, 1 for _ in range(n): print(a) # 同步更新两个变量:a变为原来的b,b变为原来a+b的和 a, b = b, a + b # 生成9个斐波那契数 fib(9)
运行后会输出:0, 1, 1, 2, 3, 5, 8, 13, 21
返回结果列表的版本
如果需要把结果存起来后续使用,可以改成返回列表的形式:
def fib(n): fib_sequence = [] a, b = 0, 1 for _ in range(n): fib_sequence.append(a) a, b = b, a + b return fib_sequence # 调用并打印结果 print(fib(9)) # 输出 [0, 1, 1, 2, 3, 5, 8, 13, 21]
调整数列起始值
如果希望数列从1, 1开始(部分场景的定义),只需要修改初始值:
def fib(n): a, b = 1, 1 for _ in range(n): print(a) a, b = b, a + b fib(9) # 输出 1, 1, 2, 3, 5, 8, 13, 21, 34
内容的提问来源于stack exchange,提问作者ganesh murthy
相关产品推荐
相关产品推荐

