自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 收藏
  • 关注

原创 2.7 最大公约数

<br />编程之美 : 2.7最大公约数<br /> <br />这是个老问题了,很简单,是个人都会,辗转相除法<br />用f(m , n) 表示两个数m和n的最大公约数,并且m>n那么有:<br />f(m , n) = f(n , m%n)<br />好的,不难看书,递归解决问题<br /> <br />我们有下面的代码<br />int gcd_one(int m  , int n)<br />{<br /> if( n ==0 )<br /> {<br />  return m ; <br />

2010-11-22 18:25:00 318

原创 2.3

<br />编程之美 2.3<br />问题描述:有一个数组,里面是用户的ID,我们知道,有一个ID出现的次数超过了一半,找出这个ID<br /> <br />分析:<br />排序整个数组,然后再遍历一次,找出出现次数超过一半的ID<br />我们再想一下,如果这个数组已经排序了,那么在[N/2]那个位置的肯定是我们要找的ID。<br />上面说的,都是要排序整个数组,那么,可不可以不排序整个数组呢?书上说了一个方法:我们每次都从数组中干掉两个不同的ID,,那么,在剩下的的数组中,那个“水王”还是占据半壁

2010-11-22 14:25:00 310

原创 effective C++ 条款32 to 条款40

<br />这一章是面向对象的概念<br /> <br />条款32:确定你的public继承塑模出is-a关系<br />其实这个条款正如大师一开始举得例子一样:public inheritance 意味 is-a的关系<br /> <br />条款33:名称的遮掩<br />局部变量名汇遮掩全局作用域的变量名<br /> <br />看下面一个例子:<br />class Base{<br />private :<br />     int x ; <br />public :<br />    vir

2010-11-22 11:03:00 428

原创 2.2 有关阶乘

<br />编程之美 2.2 不要被阶乘吓到<br />题目要求:给你一个N,求他的阶乘的末尾有多少个0 , 求它二进制表示中最低位1的位置<br /> <br />题目1思路:肯定不可能求N的阶乘,不然乘死了,怎么样会有0?10的倍数,还有5和2的积,显然,10可以化成2*5 ,那么我们只要对N的阶乘的记过进行质因数分解,看有多少个pair<2,5>就行了,显然,2的个数比5多的多,所有,实际上就是,N的阶乘里面有多少个5,那么末尾就有多少个0.<br /> <br />题目2思路:我们想想,把一个数化成

2010-11-21 21:52:00 1824

原创 2.1 求二进制数中1的个数

<br />编程之美:2.1<br />题目要求:求一个数的二进制表示中1的个数<br /> <br />解法1:<br />我们比较想想,我们怎么把一个数字化成二进制呢?短除法,对,每次除2,余数是1就写1,是0就写0,然后反过来,就OK了,那么解法1就出来了,每次除2,看余数,有下面的代码:<br />int count_solution_1(unsigned int n)<br />{<br /> int num = 0 ;<br /> while(n)<br /> {<br />  if(n%2 =

2010-11-21 20:51:00 605

原创 effective C++ 条款26 to 条款31

<br />这个几个条款都在讲实现中的细节问题<br /> <br />条款26:尽可能延后变量定义式的出现时间<br />核心思想:变量一旦定义了,就要有用。<br />书上讲了三个例子,一个说,一旦异常被抛出,前面定义的变量就没有使用,第二个是说,不要先用默认构造函数定义一个变量,然后再赋值,而是一开始就直接调用cop构造函数给予初值。第三个是是不是应该在循环中定义变量,还是将变量定义在循环为,然后循环中用赋值。(第3点有点小夸张,呵呵)<br /> <br />总结出:不知应该延后变量的定义,直到非得

2010-11-20 20:39:00 589

原创 effective C++ 条款25 swap

<br />item 25:一个不抛异常的swap函数<br /> <br />标准库有一个swap用于交换两个对象值<br />namespace std{<br />    template<typename T><br />    void swap(T& a , T& b)<br />    {<br />        T temp(a) ; <br />        a = b ;<br />        b = temp ; <br />    }<br />}<br />所以,只要对象的

2010-11-19 16:25:00 1154

原创 effective C++ 条款18 to 条款24

<br />这个部分主要解决设计的问题,具体就是,如何让你的设计更加健壮,如何让代码更好得体现封装等面向对象的思想<br /> <br />条款18:<br />书中举了一个Date的类,引开了用户如何回去误用一个类,我们应该如何有效的避免这个类被误用(在编译的时候就出错)。具体说来,有以下几种方法:<br />1、引入一些别的类,例如书中的Day , Month , Year<br />2、多用const<br />3、以函数替代某个对象,表示某个月份<br />4、消除客户管理资源的责任,用上面的资源管

2010-11-19 13:15:00 461

原创 effective C++ 条款13 to 条款17

effective C++ 对象管理资源

2010-11-18 22:26:00 409

原创 effective C++ 条款05 to 条款12

<br />这个部分的概念貌似简单,实则极为核心,是最基础的东西。因为构造函数,析构函数,拷贝构造函数,拷贝赋值函数很多时候都是默默调用的,比如,返回对象,堆上新建数组,等等,我们必须保证这几个基本的函数能够正常工作,才谈的上让类发挥作用,否则,只会陷入无尽的沉思<br /> <br />条款05:<br />显然,C++默认会有以下一些函数(都是public 和 inline的):<br />1、默认构造函数:所有的非内置类型成员不初始化,所有类类型成员用其默认构造函数初始化<br />2、析构函数:默认

2010-11-17 22:37:00 407

原创 effective C++ 条款01 to 条款04

effect C++ 第一章 让自己习惯C++

2010-11-17 16:27:00 317

原创 爬Google的查询页

最近没有没有Google API key了,因此只能自己将查询对应的URL准备好,然后通过脚本将该链接对应的网页爬下来。我们假定,我们要爬这样一个页面:http://www.google.com/search?q=IBM我们可以直接在浏览器输入上面的URL,可以看到,是Google对应IBM这个查询的返回页。我们现在的目的是通过python程序把这个返回页download下来,存在本地,为

2010-04-07 19:41:00 928

原创 'Programming Collective Intelligence'读书笔记

把原来MSN space上的读书笔记搬过来,HOHO最近两个星期,趁着实习的空挡,我看了一本非常优秀的书:Programming Collective Intelligence,之所以说这本书优秀,是因为他将很多理论通过程序展现给了读者,使得读者可以真切的感受到如何将理论应用到真正的实际应用中,并且所有的代码都是完整的,读者可以自己动手练习,在最后的algorithm summary中对本

2010-04-05 13:56:00 552

原创 windows 下的静态、动态库

偶们在实际的编程开发中,经常会遇到运行时无法找到某个DLL文件或者链接时无法找到某个LIB文件。然后,我们就开始乱GOOGLE一下,然后将VS2005的设置改变一下,或许就Ok了,我们将别人开发的DLL或者LIB导入到我们的编程中,那么这些lib,DLL到底是什么呢?下面,偶就细细道来。 首先,偶们说第一个:静态链接库(Static Libary)偶们用VS2005做一个静态链接库先

2010-04-05 01:36:00 1998 5

原创 用SVN+cruisecontrol 搭建持续集成开发环境

最近因为项目的需要,需要搭建持续集成开发环境。简单的说,持续集成就是要干这么一件事:持续集成与SVN配合,开发人员将代码上传到SVN上指定的文件夹下,持续集成cruisecontrol(简称CC)会自动从SVN上checkout代码,自动进行编译链接,生成可执行文件,而PM(也就是实验室管我们的老师)则通过web前端登录到CC服务器,从而查看每个‘码农’的每天代码的更改情况。可以说,CC为一个软件

2010-04-01 19:04:00 3169

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除