斐波那契数列相关求解代码(C++)

斐波那契数列

定义:斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368…这个数列从第3项开始,每一项都等于前两项之和。计算公式如下:
F ( n ) = { 1 ( n = 1 ) 1 ( n = 2 ) F ( n − 1 ) + F ( n − 2 ) ( n > 2 ) F(n) = \left\{ \begin{aligned} &1 \quad &(n=1)\\ &1\quad&(n=2)\\ &F(n-1)+F(n-2) &(n>2)\\ \end{aligned} \right. F(n)=11F(n1)+F(n2)(n=1)(n=2)(n>2)

1.顺序显示F0—F15

#include <iostream>
using namespace std;

int main()
{
    int f0 = 0, f1 = 1, f2;

    cout << f0 << ' ' << f1 << ' ';
    for (int i = 2; i <= 15; ++i)
    {
        f2 = f0 + f1;
        cout << f2 << " ";
        f0 = f1;
        f1 = f2;
    }
    cout << endl;

    return 0;
}

运行结果:
在这里插入图片描述
注:此例包含第0项

2. 利用递归函数求任意项

调用自身的函数成为递归函数,典型的递归函数的函数体符合如下范例

if(测试终止的条件) renturn (不需要递归的简单解决方案);
else return(包括调用同一函数的递归解决方案)

此例代码如下:

#include <iostream>
using namespace std;

int Finonacci(int n);//声明函数

int main()
{
	int n;
	cout << "请输入要求斐波那契数列的第几项" << endl;
	cin >> n;
	cout << "斐波那契数列的第" << n << "项为" << Finonacci(n);
	return 0;
}
//函数定义
int Finonacci(int n)
{
   //利用递归函数来求
	if (n == 1) return 1;
	else if (n == 2) return 1;
	else return (Finonacci(n - 1) + Finonacci(n - 2));
}

运行结果如下:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值