GEEK学习笔记— —程序员面试宝典笔记(三)

所谓笔记,就是比较个人的东西,把个人觉得有点意思的东西记录下来~~

程序员面试宝典笔记(一)基本概念
程序员面试宝典笔记(二)预处理、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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值