python斐波那契数列非递归输出前20项 每项宽度5个字符 每行输出10个
时间: 2023-06-06 15:09:02 浏览: 195
以下是Python代码,可以输出斐波那契数列前20项,每项宽度为5个字符,每行输出10个:
```
a, b = 0, 1
for i in range(20):
print("{0:5}".format(a), end='')
a, b = b, a+b
if i % 10 == 9:
print()
```
输出结果如下:
```
0 1 1 2 3 5 8 13 21 34
55 89 144 233 377 610 987 1597 2584 4181
```
相关问题
python斐波那契数列递归输出前20项 每项宽度5个字符 每行输出10个
这是一个技术问题,可以回答。以下是代码:
```python
def fib(n):
if n <= 1:
return n
else:
return fib(n-1) + fib(n-2)
for i in range(20):
print('{0:5}'.format(fib(i)), end='')
if (i+1)%10 == 0:
print()
```
使用python递归与非递归编写程序,定义一个求 Fibonacci(斐波那契)数列的函数fib(n),并编写测试代码,输出 前20项(每项宽度5个字符位置,右对齐),每行输出10个。
在Python中,递归和非递归都可以用来编写求Fibonacci数列的函数。这里分别给出递归和非递归版本的实现以及相应的测试代码。
**递归版:**
```python
def fib_recursive(n):
if n <= 0:
return 0
elif n == 1:
return 1
else:
return fib_recursive(n - 1) + fib_recursive(n - 2)
# 测试代码
for i in range(1, 21):
print(f"{fib_recursive(i):>5}", end=" ")
print()
```
**非递归版(动态规划):**
```python
def fib_iterative(n):
fib_sequence = [0, 1] + [0] * (n - 1)
for i in range(2, n + 1):
fib_sequence[i] = fib_sequence[i - 1] + fib_sequence[i - 2]
return fib_sequence[n]
# 测试代码
fib_numbers = fib_iterative(20)
for num in fib_numbers[:20]:
print(f"{num:5}", end=" ")
print()
```
这两个函数都会计算前20项Fibonacci数列,并按每行输出10个数字的方式右对齐显示。递归方法虽然简洁,但在处理大数值时可能会有性能问题,因为会有很多重复计算。而非递归版本则更高效,因为它避免了重复计算。
阅读全文
相关推荐













