斐波那契数列(入门c语言)
斐波那契数列又称黄金分割数列,是这样的:1、1、2、3、5、8、13……就是从第三项开始,每一项等于前两项之和。
我们想要求得第n个斐波那契数列是什么时,可以这样敲
一、第一种方法比较直接
#include <stdio.h>
int main()
{int n,a,b,sum;a=1;b=1;scanf("%d",&n);if(n==1 || n==2){printf("1/n");}else{for(int i=3;i<=n;i++){sum=a+b;a=b;b=sum;}}printf("第%d个斐波那契数列是%d\n",n,sum);return 0;
}
整体是这样。
再从一部分开始分析
#include <stdio.h>
int main()
{int n,a,b,sum;a=1;b=1;scanf("%d",&n);
1、int n;与scanf("%d",&n);加上后续输入,指出要求的n
2、a、b、sum先定义方便后续使用
if(n==1 || n==2){printf("1/n");}
3、根据斐波那契数列性质,第一项和第二项没有规律可言,所以先判断n是否等于1或2
else{for(int i=3;i<=n;i++){sum=a+b;a=b;b=sum;}}
4、对除了1和2的情况外进行分析运用for循环对每一项进行叠加计算出第n项
printf("第%d个斐波那契数列是%d\n",n,sum);return 0;
5、最后表达,并加以文字美化结果
二、第二种方法使用递归
#include <stdio.h>
int fi(int n)
{if(n==1 || n==2) return 1;else return fi(n-2)+fi(n-1);
}
int main()
{int n;scanf("%d",&n);printf("%d",fi(n));return 0;
}
整体是这样的。
从一部分慢慢分析
int fi(int n)
{if(n==1 || n==2) return 1;else return fi(n-2)+fi(n-1);
}
1、这一段是最主要的算法区域,因为数列的性质先判断n是否为1和2,并提供返回值。
2、再对不是1和2的情况进行处理,这里引用f(n),根据斐波那契数列的性质,每一项等于前两项的和,也就是f(n)=f(n-1)+f(n-2),最后会退到f(1)和f(2),这两个数已经提前定义(也就是当n等于1和2的时候),直接进入计算。
int main()
{int n;scanf("%d",&n);printf("%d",fi(n));return 0;
}
3、最后就是定义n再加上后续输出,指定n。
4、如果想要美观也可以向方法一一样输入一个printf("第%d个斐波那契数列是%d\n",n,sum);
斐波那契数列(入门c语言)相关推荐
- 斐波那契数列求和——C语言(小白版)
** 斐波那契数列求和--C语言(小白版) ** 题目要求 斐波那契数列 1, 1, 2, 3, 5, 8, 13, 21, 34--不难发现当n>2时,an=an-1+an-2 要求:当屏幕输 ...
- 斐波那契数列编程C语言
斐波那契数列指的是这样一个数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, - #include <stdio.h> long long Fbnl ...
- 最简单斐波那契数列输出C语言
斐波那契数列的核心是它的递增推算代码: 废话不多说,直接上代码: #include<stdio.h> /*斐波那契数列*/ int main() {int a,b;long long in ...
- 斐波那契数列(C语言版)
目录 一.斐波那契数列是什么? 二.详细代码 总结 一.斐波那契数列是什么? 斐波那契数列:1 1 2 3 5 8 13 21 34 55...... 从第三项开始,每一项都是前两项之和, 二.详细代 ...
- 斐波那契数列(Java语言)
LeetCode 509 斐波那契数 LeetCode链接 斐波那契数(通常用F(n)表示)的定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2),n>1由斐波那契数构成的序 ...
- C语言递归算法求斐波那契,递归法求斐波那契数列(C语言版)
斐波那契数列: 又称黄金分割数列,指的是这样一个数列:0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 在数学上,斐波纳契数列以如下被以递归的方法定义 ...
- 斐波那契数列算法c语言实现
有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或二级,要走上第m级,共有多少走法?注:规定从一级到一级有0种走法.#include <stdio.h> int n,m,i,j; i ...
- 斐波那契数列程序(C语言)
#include <stdio.h>int main (){double f1=1, f2=1;int i, n, k;scanf("%d",&n);//输入一 ...
- 【C语言】斐波那契数列(Fibonacci sequence)递归实现 和 非递归实现
目录 斐波那契数列 引出 C语言代码实现--递归 C语言代码实现--非递归 斐波那契数列 引出 斐波那契数列的应用十分广泛,这里不再列举. C语言代码实现--递归 同时也有许多种代码实现方式,这里仅列 ...
- 斐波那契数列(递归+源码+注释)
斐波那契数列(递归+源码+注释) 公元 1202 年,意大利数学家莱昂纳多·斐波那契提出了具备以下特征的数列: 前两个数的值分别为 0 .1 或者 1.1: 从第 3 个数字开始,它的值是前两个数字的 ...
最新文章
- C语言处理字符串及内存操作
- 快速打开IIS的方法
- 访问Mysql数据库,连接字符串配置
- python中的列表是指针吗_Python中的指针——到底指什么(二)
- 【机器视觉】 dev_set_colored算子
- 重要接口—Cloneable接口
- Spring源码解析:自定义标签的解析过程
- MySQL数据库同步神器 - Gravity - 比Datax好用
- springMVC接收请求参数的几种方式
- 西门子万人裁员背后的思考 :有车有房的中年人最好使唤
- 解密朋友圈红包照片功能
- 找不到python27.dll问题
- mysql 1031_MySQL5.6数据导入MySQL5.7报错:ERROR 1031 (HY000)
- zookeeper启动报错: Invalid configuration, only one server specified (ignoring)
- 4、nerf(pytorch)
- Java中grabImage_JavaCV实现将视频以帧方式抽取
- 练习题:打印26个小写字母
- SWUST OJ 574: Renting Boats
- 友盟集成QQ第三方登录
- 【Python】networkx创建图(1)