文档章节

递归优化

秋岛流云
 秋岛流云
发布于 2014/06/07 19:24
字数 83
阅读 7
收藏 0
点赞 0
评论 0

#include<stdio.h>
int a[60]= {0};
int f(int n)
{
    a[1]=1;
    a[2]=2;
    a[3]=3;
    if(a[n]==0)
        return a[n]=f(n-1)+a[n-3];
    else
        return a[n];
}
int main()
{
    int n,i;
    for(;;)
    {
        scanf("%d",&n);
        if(n==0)
            break;
        printf("%d\n",f(n));
    }
    return 0;
}

© 著作权归作者所有

共有 人打赏支持
秋岛流云
粉丝 2
博文 26
码字总数 26030
作品 0
烟台
程序员
尾递归优化

关于循环优化的理论比较复杂,我们现在暂时切换到一些简单些的优化吧 我们经常在写代码时会使用递归调用,我们知道递归调用通常代价比较大, 但是递归调用比较符合我们的思考方式,写代码比较...

j_m ⋅ 2012/03/30 ⋅ 0

python-递归函数

#recursion_function.py #-- coding:utf-8 -- def recursion(x): if x == 1: return 1 return x * recursion(x - 1) f1 = recursion(1) f2 = recursion(2) f3 = recursion(3) f4 = recursion......

Cattleya_W ⋅ 2016/12/23 ⋅ 0

python 递归函数

递归函数 阅读: 115067 在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。 举个例子,我们来计算阶乘,用函数表示,可以看出: fact(n) = n! = 1 x 2...

蜗牛奔跑 ⋅ 2016/10/28 ⋅ 0

【Python学习笔记】递归函数

★特殊的一种函数——递归函数 通常,函数是靠调用其他函数完成自己的功能的,但是还存在一种调用方式是:函数调用它自身,这样的函数称为递归函数 递归函数是利用'栈'实现的,递归函数的优点...

Master_Li ⋅ 2016/09/13 ⋅ 0

函数和闭包之尾递归

前面提到过,如果想把更新var的while循环转换成仅使用val这种更函数式的风格的话,有时候你可以使用递归。下面的例子是通过不断改善猜测数字来逼近一个值的递归函数: def approximate(gues...

柳哥 ⋅ 2014/06/08 ⋅ 0

尾递归和编译器优化

最近看到尾递归,所谓的尾递归wiki解释如下: 尾部递归是一种编程技巧。递归函数是指一些会在函数内调用自己的函数,如果在递归函数中,递归调用返回的结果总被直接返回,则称为尾部递归。尾...

长平狐 ⋅ 2013/03/12 ⋅ 1

[原]关于线性递归与尾递归

作为读书笔记使用: 线性递归: 1 fac(0) -> 1;2 fac(N) -> N*fac(N-1). 尾递归: 1 fac(0,Sum) ->2 Sum;3 fac(N,Sum) ->4 fac(N-1,Sum*N). 尾递归定义: 函数最后一步调用自身,即最后一行代......

长平狐 ⋅ 2012/11/14 ⋅ 0

容易被忽略的类成员方法的尾递归优化限制

所谓尾递归,就是方法的递归调用在方法体的最后。scala编译器会把尾递归的字节码优化成循环执行的形式,但有一个限制可能会被大家忽略.先看一个例子: class Approx {def isGoodEnough(guess...

mj4738 ⋅ 2012/02/11 ⋅ 0

N个小球放进M个盒子算法

N个小球放入M个盒子共有多少种方法,并输出的算法设计: 算法思路1 :暴力填充盒子 每个小球都可能放入M个盒子的任意一个,所以直接根据小球个数做递归即可,然后将存储放入hash中排重 //TODO...

屌丝Lee ⋅ 2016/10/12 ⋅ 0

PgSQL · 实战经验 · 分组TOP性能提升44倍

业务背景 按分组取出TOP值,是非常常见的业务需求。 比如提取每位歌手的下载量TOP 10的曲目、提取每个城市纳税前10的人或企业。 传统方法 传统的方法是使用窗口查询,PostgreSQL是支持窗口查...

阿里云RDS-数据库内核组 ⋅ 2016/07/04 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

如何使用serverchan微信推送告警

之前实现推送告警信息到微信的方法有如下几种: 1、通过企业公众号实现----收费: 2、通过QQ邮箱,在微信平台上开启收到邮件进行提醒; 3、第三方告警平台API,一般也是收费的; 不过最近看文...

问题终结者 ⋅ 20分钟前 ⋅ 0

TCP的RPC

RPC就是远程方法调用(Remote Process Call ),包含了客户端和服务端,涉及了对象的序列化传输。 1.服务端启动,注册远程调用的类2.客户端发送请求信息包含类、方法、参数的一些信息、序列化传...

Cobbage ⋅ 41分钟前 ⋅ 0

IOS-UI UI初步代码布局添加事件

ISO开发界面,UI是必须学习的一部分,其实很早之前想学来了,一直没有沉下心来学习。看到IOS的代码风格和布局就别扭的不行,跟java代码和android布局比较显得不是那么方便,所以一直到现在。...

京一 ⋅ 51分钟前 ⋅ 0

浅谈OpenDaylight的二次开发

OpenDaylight作为一款开源SDN网络控制器,依托于强大的社区支持以及功能特性,成为了目前主流的SDN网络控制器开发平台。在比较稳定的OpenDaylight Helium版本中,已经为开发者提供了大量的网...

wangxuwei ⋅ 今天 ⋅ 0

API 开发中可选择传递 token 接口遇到的一个坑

在做 API 开发时,不可避免会涉及到登录验证,我使用的是jwt-auth 在登录中会经常遇到一个token过期的问题,在config/jwt.php默认设置中,这个过期时间是一个小时,不过为了安全也可以设置更...

等月人 ⋅ 今天 ⋅ 0

Java NIO之文件处理

程序要操作本地操作系统的一个文件,可以分为以下三个部分: 对文件位置的操作 对文件的操作 对文件内容的操作 其中,对文件内容的操作在 Java NIO之Channel 中已经有了介绍,通过FileChann...

士别三日 ⋅ 今天 ⋅ 0

Maven的pom.xml配置文件详解

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.......

小海bug ⋅ 今天 ⋅ 0

解决httpclient超时设置不生效的问题

最近公司有项目需要通过http调用第三方服务,且第三方服务偶有超时,故需要设置一定的超时时间防止不响应的情况出现。 初始设置如下: [java] view plain copy //超时设置 RequestConfig re...

Mr_Tea伯奕 ⋅ 今天 ⋅ 0

过滤器Filter和拦截器HandlerInterceptor

过滤器 依赖于servlet容器。在实现上基于函数回调,可以对几乎所有请求进行过滤,但是缺点是一个过滤器实例只能在容器初始化时调用一次。使用过滤器的目的是用来做一些过滤操作,获取我们想要...

hutaishi ⋅ 今天 ⋅ 0

Redis入门详解(转)

Redis入门详解 Redis简介 Redis安装 Redis配置 Redis数据类型 Redis功能 持久化 主从复制 事务支持 发布订阅 管道 虚拟内存 Redis性能 Redis部署 Redis应用场景 Redis总结 Redis简介: Redi...

xiaoyaoyoufang ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部