当前位置:编程学习 > C/C++ >>

关于斐波那契数列的C++课程设计

整个模版不用,只要有设计思路和原代码就行
答案:
斐波那契数列的原理就是从第三项开始任意一项的值等于该项的前两项值的和。
可以用个函数式表示如下:
f(n) = f(n-1) + f(n-2)

斐波那契数列的项排列如下:
1, 1, 2, 3, 5,8...(后面还有许多项,在此省略)
一般所要做的操作基本上都是求解第n项的值。
不明白你的你的程序要求的功能有哪些,在此只写了个小程序
如果需要有复杂的功能,可以在此基础上修改
类Fibonacci包括一个私有数据成员n和三个公有操作setIndex(), getIndext(), getValue()。

// 编译环境vc++ 6.0
#include <iostream>
using namespace std;

class Fibonacci
{
private:
int n;// 代表斐波那契数列的第n项
public:
int getIndex();
void setIndex(int n);
int getValue(int n);// 求解斐波那契数列的第n项的值

};

int Fibonacci::getIndex()
{
return n;
}

void Fibonacci::setIndex(int n)
{
this->n = n;
}

int Fibonacci::getValue(int n)
{
int temp;
int a = 0;
int b = 1;
if (n == 1)
return 1;
for (int i = 1; i < n; ++i)
{
temp = a + b;
a = b;
b = temp;
}
return b;
}

int main()
{
int n;
Fibonacci fb;
cout << "请输入要求解的项:";
// 为了使第n项的值的不超过整型的表示范围,n不应该超过46
// 如果要处理很大的数,可以采用整型64位或数组
cin >> n;
while (n < 1 || n > 46)
{
cout << "你的输入有误!" << endl << "请重输:";
cin >> n;
}
fb.setIndex(n);// 其实可以不用这么做,这里只是为了体现C++的特点
cout << "第" << fb.getIndex() << "项的值为:";
cout << fb.getValue(fb.getIndex()) << endl;
return 0;
}

上一个:C++如何做网络聊天工具?
下一个:C++程序—分数的加减乘除

CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,