求斐波那契数列的第n位;

1.用递归的方法;

值得注意的是:使用递归的方式虽然看起来很好理解但会有很大的运算量。
(当输入一个很大的数字时不建议使用此方法)运算量呈指数式增长。

#define _CRT_SECURE_NO_WARNINGS
#include<stdio.h>
#include<stdlib.h>int Fib(int n)
{if (n == 1 || n == 2){return 1;}return Fib(n - 1) + Fib(n-2);
}int main()
{//使用递归求第n个斐波那契数int n = 0;int ret = 0;printf("输入求的第n个斐波那契数");scanf("%d", &n);ret = Fib(n);printf("%d\n", ret);system("pause");return 0;
}
2.用函数的方法;

以下代码只写了函数部分,这部分比较难理解,特别在循环部分里,要更新变量,而且要注意变量的类型使用 long long 型才不会溢出。另外在打印时的时候注意打印类型为 ll 型。例如:

printf("%lld’,Fib_h(100));打印的是第100个数字的值,该数字为天文数字81930378546560963
【优点】这种方法虽然比较难理解,但可以减少计算机的运算量。如果用递归的方法计算第100个数字的值,恐怕得好几个小时,而循环则不到1秒.

int Fib_h(int n)
{if (n == 1 || n == 2){return 1;}long long last1 = 1;//第i-1项long long last2 = 1;//第i-2项long long sum = 0;for (int i = 3; i <= n; ++i){sum = last1 + last2;//更新last1,last2last2 = last1;last1 = sum;}return sum;
}

还有其它的的方法 比如:数组,队列,在后面的博客会继续更新。

c语言求斐波那契数列的第 n 位数字相关推荐

  1. c语言求斐波那契数列n项以及前n项和

    斐波那契数列的定义 f(n)=f(n-1)+f(n-2);     (n>1) n=0;  f(0)=0; n=1;   f(1)=1 自定义函数 递归写法 fbi()此函数求x项的斐波那契数 ...

  2. 求斐波那契数列的第30个数字

    已知,斐波那契数列的定义是第一项第二项是1,从第三项开始每一项都是之前两项的和,QQ第30个斐波那契数. 我现在所学有两种方法 1.循环的方法 let n = 30; let num = 0; let ...

  3. C语言求斐波那契数列前10项

    问题分析:(1)用两个变量表示前两项.x1=1和x2=1. (2)利用已知的两个值x1和x2产生的新的数据项x.x=x1+x2.(3)产生新数据项后,变量x1和x2的值需要更新,为计算下一个新的数据项 ...

  4. linux求斐波那契数列前10项,linux求斐波那契数列的前10项以及总和.

    C语言的函数问题求斐波那契前四十个数,斐波那契数列指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学 />#include//the nest function used t ...

  5. 1,2,3,5,8,13用C语言输出前20项,c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和...

    C语言源程序如下: #include int main() { int array[100]={1,1};//斐波那契数列前两个元素均为0 int i=0;//循环变量 int n=20;//数列需要 ...

  6. C语言编程求fibonacci前20项,c语言,编程实现,求斐波那契数列,1,1,2,3,5,8,......的前20项及前20项和知道...

    C语言源程序如下: #include int main() { int array[100]={1,1};//斐波那契数列前两个元素均为0 int i=0;//循环变量 int n=20;//数列需要 ...

  7. c语言输出斐波那契数列前20项,在c语言中,如何利用数组求斐波那契数列的前20项?...

    在c语言中,以vc为例利用数组求斐波那契数列的前20项的具体步骤如下: 1.首先,打开vc: 2.点击文件.新建: 3.选择win32 console application 并在右侧输入工程的名字和 ...

  8. c语言斐波纳契数列判断素数,求斐波那契数列和素数

    所谓斐波那契数列指的是数列:1,1,2,3,5,8,13,21,--.用语言描述就是后一项等于前两项和. 打印100以类的斐波那契数列 a = 1 b = 1 print(a) print(b) wh ...

  9. C语言以递归求斐波那契数列(附完整源码)

    递归求斐波那契数列 递归求斐波那契数列完整源码(定义,实现,main函数测试) 递归求斐波那契数列完整源码(定义,实现,main函数测试) #include <locale.h> #inc ...

最新文章

  1. 视觉SLAM直接法与特征法及其在多传感融合中的思考
  2. c++ 判断数学表达式有效性_C运算符和表达式、if判断、switch与逻辑运算、循环语句...
  3. 图像文档变形恢复DewarpNet
  4. Spring boot 梳理 - 在bean中使用命令行参数-自动装配ApplicationArguments
  5. 产品经理们是如何越过 iOS 沙盒机制的?
  6. 统计学习方法第八章作业:分类问题AdaBoost算法、回归问题提升树算法 代码实现
  7. DCMTK:DSRDocumentTree,DSRDocumentSubTree,DSRDocumentTreeNode和DSRContentItem类的测试程序
  8. 【Linux系统编程】fork()函数详解
  9. SAP Spartacus RouterState
  10. Android之可以做的两件坏事---破解锁屏密码和获取Wifi密码
  11. Job 存储和持久化 (第二部分)
  12. asio http server 的一个小扩展
  13. 对Spring 容器管理事务支持的总结
  14. TTL电平和CMOS电平的区别,详细分析他们的区别
  15. 常见通信RF指标的内在和意义
  16. 【Python 小白到精通 | 课程笔记】第三章:数据处理就像侦探游戏(函数和包)
  17. 计算机网络ping本机ip,使用ping命令检查本机的TCP / IP协议
  18. 如何设计一个C++的类?
  19. 字节跳动面试题汇总 -- C++后端(含答案)
  20. 人月神话是神话嘛?嗯!

热门文章

  1. java轮组_如何评价佳沃(JAVA)牌自行车?
  2. untiy3d 热更新 脚本 动态更新 c#lite 图形学
  3. 2022年武汉江汉区第二批区级科技企业孵化器和众创空间申报(附申报时间+要求+材料)
  4. 成像系统类毕业论文文献有哪些?
  5. C# 将PPT文件转换成PDF文件
  6. 史上最全的xpath定位方法
  7. 《网络安全等级保护基本要求》(GBT 22239-2019)标准解读
  8. c语言传值调用与引用调用
  9. 你不知道的事-建站始末1【准备篇】
  10. 20221203英语学习