斐波那契数列(递归与循环的区别)
2015-09-29 09:00
363 查看
递归: #include<stdio.h> long long f(unsigned int n){ int t[2]={0,1}; return n<2?t :f(n-1)+f(n-2); } void main(){ printf("%I64d",f(100)); } 循环: #include<stdio.h> long long f(unsigned int n){ int t[2]={0,1}; if(n<2) return t ; long long s1=0; long long s2=1; long long num=0; unsigned int i=2; for(i=2;i<=n;i++){ num=s1+s2; s1=s2; s2=num; } return num; } void main(){ printf("%I64d",f(100)); } 由于递归存在重复计算的问题所以它的的时间复杂度远大于循环方法的实现 青蛙跳台阶的问题实际上就是用到了斐波那契数列的思想 ![题目描述](http://img.blog.csdn.net/20150929091936632) ![图解分析](http://img.blog.csdn.net/20150929091841798)
相关文章推荐
- C#中循环语句:while、for、foreach的使用
- Lua中数字for循环实例
- Shell中的for和while循环详细总结
- C#中的递归APS和CPS模式详解
- WinForm实现按名称递归查找控件的方法
- C#中的尾递归与Continuation详解
- C语言循环结构与时间函数用法实例教程
- C#递归实现显示文件夹及所有文件并计算其大小的方法
- php递归创建目录的方法
- php循环table实现一行两列显示的方法
- ThinkPHP采用<volist>实现三级循环代码实例
- ASP 循环导入导出数据处理 不使用缓存
- 详解JavaScript中循环控制语句的用法
- asp中for循环的使用方法
- Javascript循环绑定事件的示例代码
- C语言循环队列的表示与实现实例详解
- C++循环队列实现模型
- C# 分支与循环介绍
- Javascript递归打印Document层次关系实例分析
- 采用自执行的匿名函数解决for循环使用闭包的问题