斐波那契数列的三种方式

Posted 偷偷内卷的程序员

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了斐波那契数列的三种方式相关的知识,希望对你有一定的参考价值。

目录

斐波那契数列概念!

问题1.编写一个程序,用户输入整数 N,程序输出第 N 项斐波那契数;

问题2.编写一个程序,用户输入整数 N,程序打印前 N 项斐波那契数;

问题3.编写一个程序,用户输入整数 N,程序输出前 N 项斐波那契数之和;



斐波那契数列概念!

递归的方法进行实现:

 斐波那契数列(Fibonacci sequence),又称黄金分割数列,因数学家莱昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为“兔子数列”。

        斐波那契数列指的是这样一个数列:

        0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711……

        它的规律是:这个数列从第 3 项开始,每一项都等于前两项之和。

        在数学上,斐波那契数列以如下被以递推的方法定义:F(0)=0,F(1)=1, F(n)=F(n - 1)+F(n - 2)(n ≥ 2,n ∈ N*),显然,斐波那契数列是一个线性递推数列。

问题1.编写一个程序,用户输入整数 N,程序输出第 N 项斐波那契数;

#include<stdio.h>
int Fibonacci(int n) 

	if (n == 1 || n == 2) 
	
		return 1;
	
	else 
	
		return  Fibonacci(n - 1) + Fibonacci(n - 2);
	


int main() 
	int n;
	printf("请输入n的值:");
	scanf("%d", &n);
	printf("斐波那契数列的%d项为:%d\\n", n, Fibonacci(n));
	return 0;

   如输入N = 7 ,运行结果是:13

问题2.编写一个程序,用户输入整数 N,程序打印前 N 项斐波那契数;

#include<stdio.h>
int feibo(int n)

	if (n == 1 || n == 2)
	
		return 1;  // 1  1  2  3 
	
	else
		return feibo(n - 1) + feibo(n - 2);

int main()

	int n;
	printf("请输入斐波那契数列的项数:");
	scanf("%d",&n);
	int i;
	for (i = 1; i <= n; i++)
	
		printf("第%d项为:%d\\n",i,feibo(i));
	
	return 0;

如输入N = 7 ,运行结果是:1 1 2 3 5 8 13

问题3.编写一个程序,用户输入整数 N,程序输出前 N 项斐波那契数之和;

#include<stdio.h>
int feibo(int n)

	if (n == 1 || n == 2)
	
		return 1;
	
	else
		return feibo(n - 1) + feibo(n - 2);


int main()

	int n;
	printf("请输入斐波那契数列的项数:");
	scanf("%d",&n);
	int i;
	int sum = 0;
	for (i = 1; i <= n; i++)
	
		printf("第%d项为:%d\\t", i, feibo(i));
		sum = sum + feibo(i);
	
	printf("\\n前%d项和为:%d\\n",n,sum);
	return 0;

如输入N = 7 ,运行结果是:1 + 1 + 2 + 3 + 5 + 8 + 13 = 33

以上是关于斐波那契数列的三种方式的主要内容,如果未能解决你的问题,请参考以下文章

斐波那契系列问题的三种解法

Python算法三种斐波那契数列算法

斐波那契数列的三种时间复杂度

剑指 Offer 10- I. 斐波那契数列

三、编程题:计算斐波那契分数序列前n项之和。

1 1 2 3 5 8 13 21 的规律是啥(斐波那契数列)