所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~

程序猿面试宝典笔记(一)基本概念

程序猿面试宝典笔记(二)预处理、const和sizeof

程序猿面试宝典笔记(三)auto_ptr、递归

程序猿面试宝典笔记(四)面向对象、类型转换、static

程序猿面试宝典笔记(五)数据结构基础

程序猿面试宝典笔记(六)软件測试

题目

auto_ptr的使用方法

答案

auto_ptr是安全指针。

void f()
{
T* pt(new T);
/*....*/
delete pt;
}

最初动机是,假设上面代码f()从没有运行delete语句(由于过早的return或者是在函数体内部抛出了异常),动态分配的对象将没有被delete,这是一个典型的内存泄漏。使其安全的一个简单方法是用一个“灵

巧”的类指针对象包容这个指针,在其析构时自己主动删除此指针。例如以下。

void f()
{
auto_ptr<T> pt(new T);
}

题目

假定F(0)=0, F(1)=1, F(n)=F(n-1)+F(n-2) (n>=2),那么F(1025) mod 5的值是多少?

解析

先手动把拆项看一下,

F(5n)=F(5n-1)+F(5n-2)

=2*F(5n-2)+F(5n-3)

=3*F(5n-3)+2*F(5n-4)

=5*F(5n-4)+3*F(5n-5)

所以F(1025) mod 5 = 3*F(1020)mod 5;

依此类推:

F(1020)mod 5 = 3*F(1015)mod 5;

……

F(10)mod 5 = 3*F(5)mod 5;

F(5)为5。所以F(1025) mod 5 = 0。

答案

0

GEEK学习笔记— —程序猿面试宝典笔记(三)的更多相关文章

  1. GEEK学习笔记— —程序猿面试宝典笔记(二)

    所谓笔记,就是比較个人的东西,把个人认为有点意思的东西记录下来~~ 程序猿面试宝典笔记(一)基本概念 程序猿面试宝典笔记(二)预处理.const和sizeof 程序猿面试宝典笔记(三)auto_ptr ...

  2. 程序员面试宝典 笔记(第六章 预处理 const 和sizeof())

    void main() { "; cout<< cout<< "; cout<< cout<<strlen(ss2)<< ...

  3. 《Java程序猿面试宝典》之字符串

    前不久刚看完这一章,然而这遗忘速度实在是不能忍,既然总是遗忘,那么老衲就和你磨上一磨. 1.字符串基础 先说字符串吧,看例1: String a = "abc"; String b ...

  4. 【Java】Java程序员面试宝典(第三版)第5章----Java程序设计基本概念

    1.static静态变量,在次级作用域也可以被修改. 2.k++ + k++.第一个自加实际上只有在与计算+k++时补增.详情P36的题目. 3.Java数据类型从低到高分为(byte short c ...

  5. 疯狂Java学习笔记(72)-----------大话程序猿面试

    大话程序猿面试 10个我最喜欢问程序猿的面试问题 程序猿面试不全然指南 10个经典的C语言面试基础算法及代码 程序猿的10大成功面试技巧 程序猿选择公司的8个标准 编程开发 8个值得关注的PHP安全函 ...

  6. 《JAVA 程序员面试宝典(第四版)》读书笔记之前言

    工作五年了一直在小的软件公司混,总感觉自己的专业知识没有太大的提升.当然了中间也换了一两家公司,面试的公司就很多家,总感觉正规的软件公司(无论大小)对于基础知识的考核都非常重视,而不管你说你之前服务过 ...

  7. 《Java程序猿面试笔试宝典》之Java与C/C++有什么异同

    Java与C++都是面向对象语言,都使用了面向对象思想(比如封装.继承.多态等),因为面向对象有很多非常好的特性(继承.组合等),使得二者都有非常好的可重用性. 须要注意的是,二者并不是全然一样,以下 ...

  8. 《Java程序猿面试笔试宝典》之组合与继承有什么差别

    组合和继承是面向对象中两种代码复用的方式. 组合是指在新类里面创建原有类的对象,反复利用已有类的功能.继承是面向对象的主要特性之中的一个,它同意设计人员依据其他类的实现来定义一个类的实现. 组合和继承 ...

  9. 《Java程序猿面试笔试宝典》之Java程序初始化的顺序是如何的

    在Java语言中.当实例化对象时.对象所在类的全部成员变量首先要进行初始化,仅仅有当全部类成员完毕初始化后,才会调用对象所在类的构造函数创建对象.    Java程序的初始化一般遵循以下三个原则(以下 ...

随机推荐

  1. 使用Python的turtle模块画出简单的柱状图

    代码如下: import turtle heights = [856, 420,360,260,205] def main(): t = turtle.Turtle() t.hideturtle() ...

  2. iOS 文字渐变色

    // 创建UILabel UILabel *label = [[UILabel alloc] init]; label.text = @"我是渐变的label"; [label s ...

  3. 微软自家的.Net下的JavaScript引擎——ClearScript

    之前我介绍过一个开源的.Net下的Javascript引擎Javascript .NET,今天发现微软自己也开源了一个JavaScript引擎——ClearScript(当然,也支持VB Script ...

  4. How can I create a dump of SQL Server?

    https://blogs.msdn.microsoft.com/askjay/2009/12/29/basic-debugging-concepts-and-setup/ You can creat ...

  5. Android 友盟社会化组件-分享实现

    本文章链接地址:http://dev.umeng.com/social/android/share/quick-integration 分享快速集成 1 产品概述 友盟社会化组件,可以让移动应用快速具 ...

  6. oracle: 浅谈sqlnet.ora文件的作用,及SQLNET.AUTHENTICATION_SERVICES设置

    关于sqlnet.ora的说明: *****************************************************FROM ORACLE11G DOCS*********** ...

  7. C++中的模板学习

    https://www.cnblogs.com/eleclsc/p/5918114.html

  8. [转载]Ubuntu 14.04中root 密码忘记解决方法

      Ubuntu 14.04中root 密码忘记解决方法 方法一: 如果用户具有sudo权限,那么直接可以运行如下命令: #sudo su root #passwd #更改密码 或者直接运行sudo ...

  9. http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/

    http://www.binghe.org/2010/03/use-httpsurlconnection-in-java/

  10. Laravel 5系列教程四:数据库和Eloquent

    免费视频教程地址https://laravist.com/series/laravel-5-basic 上一篇写了一些Laravel Blade的基本用法和给视图传递变量的几种方式, 这一节我们来说说 ...