n==10 20 30 40 50 46 体验一下,感受一下,运行时间

#include <stdio.h>
int fib(int n)
{

if (n<=1)     return 1;
else            return fib(n-1)+fib(n-2);
}
int main( )
{
int n;
scanf("%d",&n);
printf("%d\n" ,fib(n) );
}

先 n==10 20 30 40 50 46 体验一下,感受一下,运行时间

再    提交一下zjut 1029 超时

// Time Limited Exceeded

#include <stdio.h>
int fib(int n)
{

if (n<=1) return 1;
else return fib(n-1)+fib(n-2);
}
int main( )
{
int n;
while(scanf("%d",&n))
printf("%d\n" ,fib(n) );
}

 普通递归

由上向下,,由大的 算小的

纯递推

 //Accept

#include <stdio.h>
int fib[50]={0,1}; //使用打表
void init()
{
int i;
for(i=2;i<50;i++) //纯递推 for循环
fib[i]=fib[i-1]+fib[i-2]; // 由上到下 因为大的 算小的
}

int main( )
{
int n;
init();
while(scanf("%d",&n))
printf("%d\n" ,fib[n] );
}

 记忆式搜索

递归计算之前,判断前面是否计算过

有小的(数组---保存起来)推大的

 //Accept
#include <stdio.h> // 记忆式搜索
int a[50]={0,1};
int fib(int n)
{
if(n<=2)              return a[n]=1;             // 1赋值给 a[n]                           //return   1;

else if(a[n]==0)   return a[n]=fib(n-1)+fib(n-2);             //没有算   先算 右边fib(n-1)+fib(n-2)          ,,在保存 a[n]
else return a[n];                                     // 否则就  算过了,,,直接用它a[n]

}

int main( )
{
int n;

while(scanf("%d",&n)!=EOF)
printf("%d\n" ,fib(n) );
}

转载于:https://www.cnblogs.com/2014acm/p/3905738.html

Fibonacci斐波拉契数列----------动态规划DP相关推荐

  1. HDU1568 Fibonacci【斐波拉契数列】

    Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...

  2. python斐波拉契数列(Fibonacci)

    ##斐波拉契数列(Fibonacci) def Fibonacci(m):n,a,b=0,0,1 while n<m:print(b)a,b=b,a+bn +=1 return 'Done' # ...

  3. 斐波拉契数列 Java三种实现

    对于很多Java初学者来说,求解斐波拉契数列,基本上所使用的方式都是递归.对于求解斐波拉契数列来说,递归的实现方式的效率是极其低下的. 在此,我贴出三种实现(递归,迭代,动态规划): 我们先看代码的执 ...

  4. 深入剖析斐波拉契数列

    深入剖析斐波拉契数列 前言 动态规划作为一种非常经典的一类算法,不仅在解决实际问题当中有很多实际的应用,同时通常也是面试的一个重点.本篇文章一步步剖析动态规划的基本原理,通过斐波拉契数列问题(优化时间 ...

  5. js求解斐波拉契数列

    斐波拉契数列,英文名称Fibonacci sequence,通常用 F(n) 表示,形成的序列称为斐波那契数列 该数列由0和1开始,后面的每一项数字都是前面两项数字的和,用数学语言描述就是 F(0) ...

  6. C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)

    本节主要说了递归的设计和算法实现,以及递归的基本例程斐波拉契数列.strlen的递归解法.汉诺塔和全排列递归算法. 一.递归的设计和实现 1.递归从实质上是一种数学的解决问题的思维,是一种分而治之的思 ...

  7. c语言n次方怎么输入_C语言实现斐波拉契数列

    C语言实现斐波拉契数列教程 怎么使用 C 语言实现计算斐波拉契数列的第 N 项的值? C语言实现斐波拉契数列详解 背景知识 斐波那契数列是一组第一位和第二位为 1,从第三位开始,后一位是前两位和的一组 ...

  8. 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)

    栈与递归 程序中的"函数调用栈"是栈数据结构的一种应用. 函数调用栈一般是从高地址向低地址增长的,栈底为内存的高地址处,栈顶为内存的低地址处. 函数调用栈中存储的数据为活动记录.活 ...

  9. Python程序-打印斐波拉契数列

    这个程序的输出从第0项开始,输出到指定的项为止. 程序如下: # 打印斐波拉契数列 iterations = int(input("Number of iterations: ") ...

最新文章

  1. 王木匠,我服了你一半
  2. 嵌入式linux和嵌入式android系统有什么区别和联系?
  3. linux内存分配缺陷,Linux系统优化-内存错误分析
  4. 防范sql注入式攻击(Java字符串校验,高可用性)
  5. 用java正则表达式验证字符串(邮箱与网址)
  6. 1001 Calculate a + b
  7. 实验4 [bx]和loop的使用
  8. 记一次跳过系统版本检测强刷opengapps卡刷包的过程,20210110修
  9. 第一章 绪论 1.2 时域采样定理及其应用
  10. mysqloffset什么意思_MySQL中OFFSET和FETCH的详解
  11. 如何使用ABP开发一
  12. 灰色关联度矩阵--基于Matlab
  13. 标签添加图片Label
  14. MySQL——SQLyog如何导出、导入数据库
  15. 【饭谈】为什么有的同事那么菜但工资比自己高?
  16. 天工开物 #5 我的 Linux 开发机
  17. 习SQL语句之SQL语句大全
  18. ERROR: ExpansionError during parsing
  19. 关于《黑手党2:乔的冒险》无法正常进入的问题
  20. 攻防须知——浅析Windows防火墙的缺陷

热门文章

  1. 共同努力做好NBear!
  2. Java多线程(三)——多线程实现同步
  3. JavaWeb那些事儿(一)--为什么做java的web开发使用struts2,springMVC和spring这样的框架
  4. Go发起Http请求及获取相关参数
  5. linux 脚本 if then,shell学习之if-then语法
  6. c++使用unordered_map与map的区别
  7. MySQL的存储过程优缺点
  8. pyspark编写UDF函数
  9. Hive中元数据表的含义
  10. p12解析流程_iOS证书及描述文件制作流程详解