斐波那契数列用if语句
时间: 2023-12-25 18:29:42 浏览: 23
斐波那契数列可以使用if语句来实现。下面是一个使用递归算法的例子:
```python
def Fib(n):
if n == 1 or n == 2:
return 1
else:
return Fib(n-1) + Fib(n-2)
```
在这个例子中,如果n等于1或2,函数返回1。否则,函数通过递归调用自身来计算第n个斐波那契数。
相关问题
python 斐波那契 for循环和if语句
在Python中,我们可以使用for循环来遍历一个序列,例如列表或元组。同时,我们也可以使用if语句来进行条件判断。在斐波那契数列的例子中,我们可以定义一个fib类,并实现__iter__()方法和__next__()方法来使其可以被for循环遍历。在__next__()方法中,我们可以使用if语句来判断是否达到了指定的终止条件,如果达到了则抛出StopIteration异常,否则返回下一个斐波那契数列的值。
具体实现可以参考以下代码:
```
class Fib(object):
def __init__(self, max):
self.max = max
self.a = 0
self.b = 1
def __iter__(self):
return self
def __next__(self):
fib = self.a
if fib > self.max:
raise StopIteration
self.a, self.b = self.b, self.a + self.b
return fib
```
在上述代码中,我们定义了一个Fib类,它有一个构造函数__init__(),用于初始化最大值max、当前值a和下一个值b。同时,我们还实现了__iter__()方法和__next__()方法,使得该类可以被for循环遍历。在__next__()方法中,我们使用if语句来判断是否达到了最大值max,如果达到了则抛出StopIteration异常,否则返回当前斐波那契数列的值,并更新a和b的值。
用递归的方法并用while语句编写斐波那契数列
递归方法实现斐波那契数列:
```python
def fibonacci_recursive(n):
if n <= 1:
return n
else:
return fibonacci_recursive(n-1) + fibonacci_recursive(n-2)
```
使用 while 语句实现斐波那契数列:
```python
def fibonacci_while(n):
a, b = 0, 1
while n > 0:
a, b = b, a + b
n -= 1
return a
```
这两种方法都可以计算斐波那契数列,但递归方法的效率较低,当计算大量的斐波那契数时会出现栈溢出的问题。使用 while 语句可以避免这个问题。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![pdf](https://img-home.csdnimg.cn/images/20210720083512.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)