所谓笔记,就是比较个人的东西,把个人觉得有点意思的东西记录下来~~
程序员面试宝典笔记(一)基本概念
程序员面试宝典笔记(二)预处理、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