[斐波拉契数列]C++

编写算法输出斐波拉契数列的前n项(n<100),n由用户输入.输出显示时要求三个数一行,分行对齐输出.例如,用户输入8,则程序显示如下:
在这里插入图片描述
斐波拉契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称“兔子数列”,其数值为:1、1、2、3、5、8、13、21、34……在数学上,这一数列以如下递推的方法定义:F(0)=1,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*)。

  • 返还对应斐波拉契数列

  • 该数列前两项都为1,因此n<2时,返回n,值1

  • 第二项值等于(n-2)+(n+1)=1

  • 第三项等于2

  • 以此类推

int arr(int n) {
    if (n < 2) return n;
    return arr(n - 2) + arr(n - 1);
}

解题代码如下:

#include<iostream>
using namespace std;


	int arr(int a)
	{
		if (a < 2)
			return a; 
			return arr(a - 1) + arr(a - 2);
	}

	int main()
	{
		int a, n, i = 0;
		cout << "请输入一个数:" << endl;
		cout << "--------------------------------------" << endl;
		cin >> n;
		for (int a = 1; a <= n; a++)
		{
			if (i < 3 )
			{
				i++;
				cout << arr(a) << " ";
			}
			else
			{
				i = 0;
				i++;
				cout << endl;
				cout << arr(a) << " ";
			}
		}
		return 0;
	}

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

在这里插入图片描述
注意:需要注意i和a的值,稍有差错,会跳过一个数值

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值