这一章的题目叫做Programming: A General Overview。也就是对编程进行一个概述。这一章的内容挺丰富的,提到了本书的目的、数学基础知识、递归函数介绍以及C++的基础知识回顾,最后还提到了一个简单的矩阵的类。特别值得注意的是,这一章里回顾了C++ 11标准新引进的右值引用(rvalue reference)以及移动语义(move semantics)。没有系统学习过C++ 11的同学看起来可能觉得很困惑(当初我就是这样感觉的);不过不用着急,如果想要对C++ 11有一个比较好的理解的话,推荐大家看《Ivor Horton’s BeginningVisual C++ 2013》这本书,里面对C++ 11进行了比较详细的介绍。
下面开始对习题进行解答。
习题1.1
这道题让我们编程来解决本章一开始提出的选择问题(selection problem),并且还要画表格来表示对于不同的N所需的运行时间。为什么要画表格呢?直接在控制台里输出就OK了呀!当然为了计算时间,我#include了ctime库文件。计算时间还有很多其他方法,不过这个好像是在没有包含Windows API的情况下精确度最高、最便于使用的了。由于这一章里我们没有学习到任何高级算法,所以只能用本章一开始给出的两个思路了。这两种思路体现在了本题解答的两个函数里面,看官一阅便知。从运行结果上来看,至少对于我给出的这个实例,第二种思路确实要稍微快一些。
习题1.2
这道题让我们编程来解决本章一开始提出的单词谜题(word puzzle