python用非递归计算斐波那契数列
时间: 2024-01-03 08:22:48 浏览: 169
以下是使用非递归方法计算斐波那契数列的Python代码示例:
```python
def calculate_fibonacci_sequence(n):
if n <= 0:
return "请输入一个大于0的整数"
elif n == 1:
return 0
elif n == 2:
return 1
else:
prev_num = 0
current_num = 1
for i in range(3, n+1):
next_num = prev_num + current_num
prev_num = current_num
current_num = next_num
return current_num
n = 10
result = calculate_fibonacci_sequence(n)
print("第", n, "个斐波那契数是:", result)
```
这段代码中,我们使用了一个循环来计算斐波那契数列的第n个数。我们首先判断输入的n是否合法,然后使用两个变量prev_num和current_num来保存前两个数,然后通过循环计算出第n个数,并将其返回。
相关问题
非递归输出斐波那契数列编程计算第n个数
以下是Python代码实现:
```python
def fibonacci(n):
if n <= 0:
return None
elif n == 1 or n == 2:
return 1
prev, curr = 1, 1
for i in range(3, n + 1):
curr, prev = curr + prev, curr
return curr
n = int(input("输入n: "))
result = fibonacci(n)
if result is None:
print("输入的n必须大于0")
else:
print("第{}个斐波那契数是{}".format(n, result))
```
首先判断$n$是否小于等于0,是的话返回None;然后判断$n$是否为1或2,是的话返回1。接着进行非递归计算:定义prev和curr分别代表前一个数和当前数,初始值都为1。循环从3到$n$,每次更新curr和prev的值,最后curr即为第$n$个斐波那契数。最后根据结果是否为None进行输出。
python编写递归函数和非递归函数、输出斐波那契数列_python 入门之斐波那契数列递归表达式算法和非递归算法...
好的,下面是Python实现斐波那契数列的递归和非递归算法:
递归算法:
```python
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
```
非递归算法:
```python
def fibonacci_iterative(n):
if n <= 1:
return n
else:
a, b = 0, 1
for i in range(2, n+1):
c = a + b
a, b = b, c
return b
```
在这两个函数中,变量n表示要求的斐波那契数列的第n项。递归算法中,如果n小于等于1,则返回n;否则递归调用函数本身来计算前两项的和。非递归算法中,如果n小于等于1,则返回n;否则通过循环计算前两项的和,并不断更新前一项和当前项的值。
接下来,我们可以通过调用这两个函数来输出斐波那契数列的前n项:
```python
n = 10
# 递归算法
print("斐波那契数列(递归算法):")
for i in range(n):
print(fibonacci_recursive(i), end=" ")
print()
# 非递归算法
print("斐波那契数列(非递归算法):")
for i in range(n):
print(fibonacci_iterative(i), end=" ")
```
输出结果如下:
```
斐波那契数列(递归算法):
0 1 1 2 3 5 8 13 21 34
斐波那契数列(非递归算法):
0 1 1 2 3 5 8 13 21 34
```
这样就可以输出斐波那契数列的前n项了。
阅读全文
相关推荐














