You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何不使用列表,按指定每行数量打印斐波那契数列?

解决斐波那契数列按指定行数打印的问题

方法一:先收集数列再分批打印

这种方法先把所有符合条件的斐波那契数存入列表,再按指定数量切片打印,逻辑清晰,适合需要后续复用数列的场景:

# 收集1到150之间的斐波那契数
fib_numbers = []
a, b = 1, 1
while b < 150:
    fib_numbers.append(b)
    a, b = b, a + b

# 设置每行打印的数字数量
per_line = 5

# 按每per_line个数字为一组打印
for i in range(0, len(fib_numbers), per_line):
    # 把每组数字转成字符串并用空格连接,再打印
    print(' '.join(map(str, fib_numbers[i:i+per_line])))

方法二:生成时直接计数换行

这种方法不需要额外存储整个数列,边生成边打印,节省内存,适合处理大数据量的场景:

a, b = 1, 1
count = 0
per_line = 5

while b < 150:
    # 打印数字,末尾用空格分隔而非默认换行
    print(b, end=' ')
    count += 1
    # 每打印per_line个数字就换行
    if count % per_line == 0:
        print()
    a, b = b, a + b

# 处理最后一行不足per_line个的情况,补换行(可选)
if count % per_line != 0:
    print()

原代码问题说明

你原来的代码中print(b, "\n")会让每个数字后都输出换行符,导致每个数字单独占一行。要实现按指定数量换行,需要控制换行的时机,而不是每个数字都强制换行。上面两种方法分别通过批量处理或计数判断来实现这一点。

内容的提问来源于stack exchange,提问作者Andrei360

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 08:45:31