用递归方式写斐布拉契数列的坏处
在学习循环时,用循环写斐布拉契数列思路大致如下:
代码可以写成:
#include <stdio.h>
/*
根据输入n,计算fino级数和
fibo级数,1,1,2,3,5,8,13......
Fibo(n)=fino(n-1)+fino(n-2) n>=3
sum=1+1+2+......@param n:int, 输入n(项数)
@return sum:int 级数和
*/int getSumFibo(int n){/***begin***/int sum=0;int item0=0;int item1=1;//前两项不遵从规律int item=item0+item1; for(int i=1;i<=n;i++)//i与计算得数无关,作用为控制循环次数 {sum+=item;item0=item1;//获取原数列的第二项 >变为新数列第一项 item1=item;//获取原数列第三项 >变为新数列第二项 item=item0+item1; //新数列第三项 }return item;/***begin***/} //testint main(){printf("%d",getSumFibo(28));return 0;}
若使用函数递归,则有:
#include <stdio.h>
int flbi(int n){if(n<=2){return 1;}elsereturn flbi(n-2)+flbi(n-1);}
int main(){int x;scanf("%d",&x);int r=flbi(x);printf("%d",r);return 0;
}
相较于循环求解,递归法似乎更好理解,但递归法存在一个和大的问题:
用递归方式写斐布拉契数列的坏处相关推荐
- python 递归方式实现斐波那契数列
python 递归方式实现斐波那契数列 import time t1=time.time() def factorial(n):if n==1 or n==2:return 1else:return ...
- python用递归法写斐波那契_python实现斐波那契数列: 递归+备忘录法+动态规划实现...
1.为什么备忘录法和动态规划法: 斐波那契是很多人入门递归思想的第一课,所以很多人都会最简单的一种递归写法,但是其实递归的过程,他的时间复杂度非常高,达到了O(2的n次方)这样的一个指数级别. 先看最 ...
- JAVA(4)学习笔记:JVM虚拟机上的栈、大驼峰命名法和小驼峰命名法、实参和形参、重载方法、调用栈、递归练习(汉诺塔+斐波那契数列)、数组的定义、数组的初始化、增强for循环。
接上次的博客:JAVA学习(3)--知识整理以及一些简单程序(猜数字游戏.求各种自幂数.求出一个数字的二进制位中1的个数.获取一个数二进制序列中所有的偶数位和奇数位.求公约数的多种实现方式.输入密码程 ...
- 斐波纳契数列。递归和非递归分别实现求第n个斐波那契数。(从第3项开始每1项的值为前两项的和)
1:非递归方式实现斐波那契数列. 因为斐波那契数列条件,所以我设计了这个算法,将后一项的值赋给前一项,,再不断累加. 最后跳出循环. 接下来我重点介绍递归的方法: 递归:通俗来说就是函数自己调用自己, ...
- python斐波那契数列
转自:https://www.cnblogs.com/wolfshining/p/7662453.html 斐波那契数列即著名的兔子数列:1.1.2.3.5.8.13.21.34.-- 数列特点:该数 ...
- python实现数字循环相加_python使用递归、尾递归、循环三种方式实现斐波那契数列...
在最开始的时候所有的斐波那契代码都是使用递归的方式来写的,递归有很多的缺点,执行效率低下,浪费资源,还有可能会造成栈溢出,而递归的程序的优点也是很明显的,就是结构层次很清晰,易于理解. 可以使用循环的 ...
- python递归方式和普通方式实现输出和查询斐波那契数列
斐波那契数列 斐波那契数列(Fibonacci sequence),是从1,1开始,后面每一项等于前面两项之和. 如果为了方便可以用递归实现,要是为了性能更好就用循环. 递归方式实现生成前30个斐波那 ...
- 斐波那契数列python递归 0、1、1、2、3_python实现斐波那契数列的多种方式
正文共: 3269字 8图 预计阅读时间: 9分钟 每日分享 The great pleasure in life is doing what people say you cannot do. 人生 ...
- 用C语言写爬楼梯(斐波那契数列的应用,迭代与递归)爬楼梯问题超详细,看完这一篇就够了。
爬楼梯问题实际上就是斐波那契数列的应用,首先我们讲讲什么是斐波那契数列.因数学家莱昂纳多·斐波那契(Leonardo Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列" ...
最新文章
- 万字长文,一文搞懂TCP/IP和HTTP、HTTPS
- 阻塞与非阻塞的IO网络读写
- 清华唐杰团队:一文看懂NLP预训练模型前世今生
- 人人可用的在线抠图,还是AI自动化的那种!北大校友的算法被玩出新高度
- JavaScript 编程精解 中文第三版 十一、异步编程
- 关于membership的进一步理解
- 使用ReportStudio打开cube模型创建报表出现两个最细粒度名称
- 为Mac OS X添加用Firefox搜索服务
- mysql日期为00_MySQL 8.0.13 设置日期为0000-00-00 00:00:00时出现的问题
- 【模拟】Codeforces 711A Bus to Udayland
- 安徽省计算机二级考试教程,安徽省计算机二级自学教程推荐:Office高级应用上机指导(2018年版)...
- 同事线上埋的这个坑,我整整找了3天3夜
- java 财付通支付_微信微信支付已拿下51%的份额,远超支付宝的41%
- Linux文件系统格式EXT3,EXT4和XFS的区别
- python读取文件夹中的所有图片并将图片名逐行写入txt中
- iOS 实现3Dtouch
- 如何用Diffusion models做interpolation插值任务?——原理解析和代码实战
- stm32f105vct6例程_STM32F105VCT6
- 线性滤波和非线性滤波
- CLOSE_WAIT和TIME_WAIT
热门文章
- Vue启动本地(.exe)文件
- imgcook设计稿生成代码插件
- 台湾 等学位论文下载
- 冲击红队第一天 - Web安全介绍与基础入门
- 【摘】WebGIS开发从入门到......
- 微软云的一些说明(整理)
- 《Redis设计与实现》笔记|SDS动态字符串|链表字典跳跃表整数集合压缩列表结构|redis中的对象|数据库原理|RDB持久化|AOF持久化|事件与多路利用模型|发布订阅原理|事务原理|慢查询日志
- javascript 快速获取图片实际大小的宽高
- 【超融合】818超融合发展经历了哪几个阶段!
- hdu 2475 box LCT