Fibonacci斐波拉契数列----------动态规划DP
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相关推荐
- HDU1568 Fibonacci【斐波拉契数列】
Fibonacci Time Limit: 1000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) Total Sub ...
- 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' # ...
- 斐波拉契数列 Java三种实现
对于很多Java初学者来说,求解斐波拉契数列,基本上所使用的方式都是递归.对于求解斐波拉契数列来说,递归的实现方式的效率是极其低下的. 在此,我贴出三种实现(递归,迭代,动态规划): 我们先看代码的执 ...
- 深入剖析斐波拉契数列
深入剖析斐波拉契数列 前言 动态规划作为一种非常经典的一类算法,不仅在解决实际问题当中有很多实际的应用,同时通常也是面试的一个重点.本篇文章一步步剖析动态规划的基本原理,通过斐波拉契数列问题(优化时间 ...
- js求解斐波拉契数列
斐波拉契数列,英文名称Fibonacci sequence,通常用 F(n) 表示,形成的序列称为斐波那契数列 该数列由0和1开始,后面的每一项数字都是前面两项数字的和,用数学语言描述就是 F(0) ...
- C语言数据结构----递归的应用(斐波拉契数列、汉诺塔、strlen的递归算法)
本节主要说了递归的设计和算法实现,以及递归的基本例程斐波拉契数列.strlen的递归解法.汉诺塔和全排列递归算法. 一.递归的设计和实现 1.递归从实质上是一种数学的解决问题的思维,是一种分而治之的思 ...
- c语言n次方怎么输入_C语言实现斐波拉契数列
C语言实现斐波拉契数列教程 怎么使用 C 语言实现计算斐波拉契数列的第 N 项的值? C语言实现斐波拉契数列详解 背景知识 斐波那契数列是一组第一位和第二位为 1,从第三位开始,后一位是前两位和的一组 ...
- 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)
栈与递归 程序中的"函数调用栈"是栈数据结构的一种应用. 函数调用栈一般是从高地址向低地址增长的,栈底为内存的高地址处,栈顶为内存的低地址处. 函数调用栈中存储的数据为活动记录.活 ...
- Python程序-打印斐波拉契数列
这个程序的输出从第0项开始,输出到指定的项为止. 程序如下: # 打印斐波拉契数列 iterations = int(input("Number of iterations: ") ...
最新文章
- 王木匠,我服了你一半
- 嵌入式linux和嵌入式android系统有什么区别和联系?
- linux内存分配缺陷,Linux系统优化-内存错误分析
- 防范sql注入式攻击(Java字符串校验,高可用性)
- 用java正则表达式验证字符串(邮箱与网址)
- 1001 Calculate a + b
- 实验4 [bx]和loop的使用
- 记一次跳过系统版本检测强刷opengapps卡刷包的过程,20210110修
- 第一章 绪论 1.2 时域采样定理及其应用
- mysqloffset什么意思_MySQL中OFFSET和FETCH的详解
- 如何使用ABP开发一
- 灰色关联度矩阵--基于Matlab
- 标签添加图片Label
- MySQL——SQLyog如何导出、导入数据库
- 【饭谈】为什么有的同事那么菜但工资比自己高?
- 天工开物 #5 我的 Linux 开发机
- 习SQL语句之SQL语句大全
- ERROR: ExpansionError during parsing
- 关于《黑手党2:乔的冒险》无法正常进入的问题
- 攻防须知——浅析Windows防火墙的缺陷