设计一个类,可以求解某个区间内的fibonacci数列(数列从1开始)。在主函数读取两个整数m,n,当m大于n时交换m和n,调用类的generateFibx方法,以m和n为项数编号区间生成并输出在此区间内的fibonacci数列并输出。
时间: 2024-03-20 07:43:30 浏览: 45
好的,这是一个简单的 Python 类实现:
```python
class Fibonacci:
def __init__(self):
self.fib = [1, 1]
self.max_index = 2
def generateFibx(self, m, n):
if m > n:
m, n = n, m
if n > self.max_index:
for i in range(self.max_index, n):
self.fib.append(self.fib[i - 1] + self.fib[i - 2])
self.max_index = n
return self.fib[m - 1:n]
```
在这个类中,我们用一个列表 `fib` 存储已经计算出来的 Fibonacci 数列,用一个变量 `max_index` 记录列表中最大的项数。在 `generateFibx` 方法中,首先判断 `m` 和 `n` 的大小关系,然后如果 `n` 大于当前已知的最大项数,就计算从当前最大项数开始到 `n` 的所有项,并更新 `max_index`。最后返回指定区间内的 Fibonacci 数列。
下面是一个例子,展示如何使用这个类:
```python
f = Fibonacci()
m, n = input().split()
m = int(m)
n = int(n)
fib_list = f.generateFibx(m, n)
for x in fib_list:
print(x, end=" ")
print()
```
在这个例子中,我们首先创建了一个 Fibonacci 对象 `f`,然后读入两个数字 `m` 和 `n`。接下来,我们调用 `f` 的 `generateFibx` 方法,得到指定区间内的 Fibonacci 数列。最后,我们通过循环遍历这个数列,输出每个数。
阅读全文