用C++fibonacci数列(项数区间) 设计一个类,可以求解某个区间内的fibonacci数列(数列从1开始)。在主函数读取两个整数m,n,当m大于n时交换m和n,调用类的generateFibx方法,以m和n为项数编号区间生成并输出在此区间内的fibonacci数列并输出。
时间: 2024-04-04 18:32:31 浏览: 109
以下是完整的代码:
#include<iostream>
using namespace std;
class Fibonacci{
private:
int* fib; // 保存fibonacci数列的数组
public:
Fibonacci(){ // 构造函数
fib = NULL;
}
~Fibonacci(){ // 析构函数
if(fib != NULL){
delete[] fib;
}
}
void generateFib(int n){ // 生成n项的fibonacci数列
if(fib != NULL){
delete[] fib;
}
fib = new int[n];
fib[0] = 1;
if(n == 1){
return;
}
fib[1] = 1;
if(n == 2){
return;
}
for(int i=2; i<n; i++){
fib[i] = fib[i-1] + fib[i-2];
}
}
void generateFibx(int x, int y){ // 生成从x项到y项的fibonacci数列
int n = y - x + 1;
if(fib != NULL){
delete[] fib;
}
fib = new int[n];
fib[0] = 1;
if(n == 1){
return;
}
fib[1] = 1;
if(n == 2){
return;
}
for(int i=2; i<n; i++){
fib[i] = fib[i-1] + fib[i-2];
}
}
void show(){ // 显示fibonacci数列
for(int i=0; fib[i]!=0; i++){
cout<<fib[i]<<" ";
}
cout<<endl;
}
};
int main(){
int m, n;
cin>>m>>n;
if(m > n){
int temp = m;
m = n;
n = temp;
}
Fibonacci f;
f.generateFibx(m, n);
f.show();
return 0;
}
阅读全文