如何用Python实现不含0、以1开头的Fibonacci数列?
解决以1开头的斐波那契数列输出问题
针对你的需求,这里提供两种不影响核心逻辑的修改方案:
方案一:调整初始值,直接生成以1开头的数列
如果需要输出MAX个以1开头的斐波那契数,只需修改初始的n1和n2值,让数列从1开始生成:
MAX = 17 n1, n2 = 1, 1 i = 0 while i < MAX: print(n1) nth = n1 + n2 n1 = n2 n2 = nth i += 1
执行后会输出17个以1开头的数,最后一项为1597,完全符合斐波那契数列的生成逻辑。
方案二:保留原初始逻辑,过滤掉开头的0
如果想保留原代码的初始值设定(n1=0, n2=1),只需在打印时跳过第一个0即可,这样输出的数量会比MAX少1个,和你给出的示例完全匹配:
MAX = 17 n1, n2 = 0, 1 i = 0 while i < MAX: if n1 != 0: print(n1) nth = n1 + n2 n1 = n2 n2 = nth i += 1
执行后会输出你示例中的16个数:1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987。
内容的提问来源于stack exchange,提问作者Allen C
相关产品推荐
相关产品推荐

