2013年2月19日

整数划分算法原理与实现(转载于 http://www.cnblogs.com/nokiaguy/archive/2008/05/11/1192308.html 李宁的极客世界)

摘要: 整数划分问题是将一个正整数n拆成一组数连加并等于n的形式,且这组数中的最大加数不大于n。 如6的整数划分为 6 5 + 1 4 + 2, 4 + 1 + 1 3 + 3, 3 + 2 + 1, 3 + 1 + 1 + 1 2 + 2 + 2, 2 + 2 + 1 + 1, 2 + 1 + 1 + 1 + 1 1 + 1 + 1 + 1 + 1 + 1 共11种。下面介绍一种通过递归方法得到一个正整数的划分数。 递归函数的声明为 int split(int n, int m);其中n为要划分的正整数,m是划分中的最大加数(当m > n时,最大加数为n), 1 当n = 1或m = 1时,s 阅读全文

posted @ 2013-02-19 17:11 程序员中的战斗机 阅读(193) 评论(0) 推荐(0) 编辑

2013年1月9日

设计模式学习2 工厂模式

摘要: 工厂模式其实就是简单模式的升级版本,简单模式将界面与业务逻辑区分开,但是如果不停的增加计算器的运算方式,简单模式中的工厂Factory 中判断的业务逻辑会变非常复杂,这不符合封装的原则。所以在此之上将Factory抽象了出来,代码如下:class Cal{public: virtual double getResult() { return 0; } void setPara(double paraA,double paraB) { parameterA = paraA; parameterB = paraB; }protected: ... 阅读全文

posted @ 2013-01-09 16:20 程序员中的战斗机 阅读(130) 评论(0) 推荐(0) 编辑

2013年1月7日

算法学习1 单链表

摘要: 单链表 阅读全文

posted @ 2013-01-07 09:32 程序员中的战斗机 阅读(127) 评论(0) 推荐(0) 编辑

2013年1月6日

设计模式学习1 简单工厂模式

摘要: 工作半年了,开始学习设计模式和算法,有时间,至少我所在部门基本不加班,不过有时候很难打败懒惰...第一个设计模式:简单工厂模式。简单工厂模式可能是最经济实惠的一种设计模式了。写下来做个记录吧。class Cal{public: virtual double getResult() { return 0; } void setPara(double paraA,double paraB) { parameterA = paraA; parameterB = paraB; }protected: double parameterA; d... 阅读全文

posted @ 2013-01-06 14:49 程序员中的战斗机 阅读(155) 评论(0) 推荐(0) 编辑

2012年10月16日

c与c++分别是怎样动态分配和释放内存的,有什么区别?(转)

摘要: 查了查资料,总结了以下几点: 一、先来谈谈在C语言下,动态内存分配和释放的特点。动态分配内存的定义是这样的,指在程序运行过程中,要申请内存,系统会根据程序的实际情况来分配,分配空间的大小是由程序的需求来决定的。在C语言下面,举个例子,定义一个指针,int *p;此时指针i是一个野指针,是一个指向不确定位置的指针,对它进行操作是很危险的,此时我们需要动态分配内存空间,让i指向它。而有一种形式是这样的,int *p=&b;这并非是一种动态内存分配方式,而是一种指针的初始化,把变量b的首地址给了指针p。在C语言下究竟如何实现动态内存分配的呢?这里提供了几个函数来实现,分别是malloc(), 阅读全文

posted @ 2012-10-16 15:07 程序员中的战斗机 阅读(587) 评论(0) 推荐(0) 编辑

导航