除法的递归算法

摘要: 《Algorithms》书中18页给出了乘法的递归算法的伪代码,并且之前也给了公式。但是由于除法只有伪代码没有公式的证明支持,我为了让自己知其然而且还要知其所以然,于是想自己证明之。首先 我们设 a=(x1)*y+(b1) 并且【a/2】=(x2)*y+(b2)把a除以2并且做取整运算。这个时候会出现两种情况,第一种是a为偶数,则 【a/2】 = a/2 ,第二种是【a/2】 = (1/2)*(a-1)a为偶数的时候,上面等式的右边则是(1/2)*((x1)*y+(b1))。 a为奇数,上面等式右边是(1/2)*((x1)*y+(b1-1))。分别和【a/2】=(x2)*y+(b2)相比,匹配 阅读全文
posted @ 2012-03-06 21:21 Evan263 阅读(931) 评论(0) 推荐(1) 编辑

const对象和成员函数

摘要: 最近在看《Thinking in C++》的第一卷。 因为之前还稍有基础,所以看的速度比看其他的书的速度要快一些 。 不过,这并不妨碍我找到我的疑惑。在此书p190 8.4.3 中, 书上有写到 “一个没有被明确声明为const的成员函数被看成是将要修改对象中数据成员的函数,而且编译器不允许它为一个const对象所调用。”这本来理所当然,但是,再向后看2页,192页的第一句话,书中又再一次明确指出“构造函数和析构函数都不是const成员函数”。我就突然想,那岂不是所有的const对象都不能初始化和被清除? 抱着这一疑问,我简单的实验了一下代码如下:#include<iostream> 阅读全文
posted @ 2012-02-28 21:51 Evan263 阅读(338) 评论(0) 推荐(0) 编辑