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