编写程序,定义一个求Fibonacci(斐波那契)数列的函数fib(n),并编写测试代码,输出前20项(每项宽度5个字符位置,右对齐),每行输出10个。运行效果参见图8-5。用非递归方式实现。
时间: 2024-10-12 09:06:35 浏览: 58
使用python求斐波那契数列中第n个数的值示例代码
5星 · 资源好评率100%
在编写一个求Fibonacci数列的非递归函数时,我们可以使用循环结构来避免无限递归的问题。这里是一个Python示例:
```python
def fib(n):
if n <= 0:
return "输入错误,n必须大于0"
elif n == 1 or n == 2:
return 1
else:
a, b = 1, 1
for _ in range(3, n + 1):
a, b = b, a + b
return b
# 测试代码
width = 5
for i in range(1, 21):
result = str(fib(i)).rjust(width)
print(result, end=' ')
if (i+1) % 10 == 0: # 每10个数换行
print()
# 运行效果参考图8-5
```
这个函数首先检查输入是否合法,然后通过迭代计算第n项的Fibonacci值。对于测试代码部分,我们使用`rjust()`方法保证每个数字右对齐,并在每打印完10个数之后换行。
阅读全文