03 2013 档案

摘要:1 <?php 2 /** 3 php对于两个字符串比较, 会首先判断他们是否是数字型字符串, 4 如果是,那么就会转换成整形来比较.. 5 */ 6 var_dump("1" == "1e0"); //true 7 var_dump("1" == "0x1"); //true 8 var_dump("20" == "2e1"); //true 9 var_dump("10" == " 0x0a"); //true10 11 12 阅读全文
posted @ 2013-03-11 14:05 lpfuture 阅读(269) 评论(0) 推荐(0) 编辑
摘要:1 <?php 2 /*=============裴波那契数列=============*/ 3 //使用递归 4 function fibonacci_recursive($n){ 5 if($n==1||$n==2){ 6 return 1; 7 }else{ 8 return fibonacci($n-1)+fibonacci($n-2); 9 }10 }11 12 //不使用递归13 function fibonacci($n){14 $base1 = 1;15 $base2 = 2;16 if($n=... 阅读全文
posted @ 2013-03-07 15:02 lpfuture 阅读(212) 评论(0) 推荐(0) 编辑
摘要:我们把只包含因子2、3和5的数称作丑数(Ugly Number)。例如6、8都是丑数,但14不是,因为它包含因子7。习惯上我们把1当做是第一个丑数。求按从小到大的顺序的第1500个丑数下面是一道在网络上广为流传的面试题,据说google曾经采用过这道题。 所谓一个数m是另一个数n的因子,是指n能被m整除,也就是n % m == 0。根据丑数的定义,丑数只能被2、3和5整除。也就是说如果一个数如果它能被2整除,我们把它连续除以2;如果能被3整除,就连续除以3;如果能被5整 除,就除以连续5。如果最后我们得到的是1,那么这个数就是丑数,否则不是。基于前面的分析,我们可以写出如下的函数来判断一... 阅读全文
posted @ 2013-03-07 14:30 lpfuture 阅读(287) 评论(0) 推荐(0) 编辑
摘要:1 <?php 2 /** 3 *在n行n列的棋盘上,如果两个皇后位于棋盘上 4 *的同一行或者同一列或者同一对角线上,则称 5 *他们为互相攻击。现要求找出使n元棋盘上的n 6 *个皇后互不攻击的所有布局。 7 */ 8 //判断第k个皇后放在k行的x列上会不会有冲突 9 function place($k,$x){10 for($i=0;$i<$k;$i++){11 if(abs($k-$i)==abs($x[$k]-$x[$i])||$x[$k]==$x[$i]){12 return false;13 }14 }... 阅读全文
posted @ 2013-03-04 18:05 lpfuture 阅读(172) 评论(0) 推荐(0) 编辑
摘要:1 '; 17 }else{ 18 hanoi($from,$aux,$to,$num-1); 19 echo '第'.$counter++.'步:'.$num.'铁盘从'.$from.'桩移至'.$to.'桩'; 20 hanoi($aux,$to,$from,$num-1); 21 } 22 } 23 $from = 'A';... 阅读全文
posted @ 2013-03-04 14:43 lpfuture 阅读(200) 评论(0) 推荐(0) 编辑
摘要:利用clipboardData.setData访问剪切板属性,只IE支持此方法,所以先写一段浏览器判断,针对IE使用剪切板脚本,非IE提示手动复制js: 1 <script type="text/javascript"> 2 //留用判断浏览器 3 // var Sys = {}; 4 // var ua = navigator.userAgent.toLowerCase(); 5 // var s; 6 // (s = ua.match(/msie ([\d.]+)/)) ? Sys.ie = s[1] : 7 // (s = ua.match(/firefo 阅读全文
posted @ 2013-03-04 13:42 lpfuture 阅读(2136) 评论(0) 推荐(0) 编辑
摘要:很多seoer不知道b和strong以及i和em是什么东西,因为他们从来没有接触过html标记,写文章的时候只是用网站后台的编辑器排版文章,需要加粗的时候点击编辑器上面的B按钮就行了。 但是对于一些稍微了解html的朋友来说b和strong又成了问题,不仅是seoer为这个问题头疼,就连很多网页的编写者也分不清这两个标记有什么 区别,而在网页的编辑工具如:Dreamweaver里面如果选用加粗之后自动会出现strong标记,所以有的时候写完了代码,为了节省空间,还需要手 工的改成b标记。 因为两者所达到的效果一样,所以人们就没有太在意这两个到底有什么区别,那么今天我来告诉大家,是有区别... 阅读全文
posted @ 2013-03-04 13:30 lpfuture 阅读(586) 评论(0) 推荐(0) 编辑
摘要:浮动:1 <div style="padding:10px;border:2px solid #999">2 <div style="width:200px;height:200px;background:#ccc;"></div>3 <p style="margin:0">我是文案</p>4 </div>这是在没有浮动的情况下,上面代码表现。如果灰色的区域左浮动的话,会是下面的表现: 且慢,如果说宽度的占位还在的话,那么我们不妨对<p>标签设置个ma 阅读全文
posted @ 2013-03-04 12:35 lpfuture 阅读(345) 评论(0) 推荐(0) 编辑
摘要:既定访问者模式类图: 假设现在需求要扩展数据结构,增加一种具体元素,男与女之外的一种不明物体,我们暂时把它称为“怪兽”,在既有访问者模式的架构下,应该怎样?首先增加一个Bruce类,实现Person接口。最麻烦的是要修改访问者接口及其所有具体访问者! 因为Visit方法中没有包含访问Bruce对象的行为,因此我们被迫要去手工更改Visitor(包括抽象的,具体的),在其中添加有关Bruce对象 的行为,这严重违反了“开放-封闭”原则。究其原因在于目前的结构下,被访问对象与访问对象互相依赖,自然不利于分离变化,必须去掉一层依赖关系。 我们尝试把Visitor对Person(元素)的依赖关... 阅读全文
posted @ 2013-03-01 17:55 lpfuture 阅读(270) 评论(0) 推荐(0) 编辑
摘要:定义:在不破坏封装性的前提下,捕获一个对象的内部状态,并在该对象之外保存这个状态。这样就可以将 该对象恢复到原先保存的状态类型:行为类类图:备忘录模式的结构发起人:记录当前时刻的内部状态,负责定义哪些属于备份范围的状态,负责创建和恢复备忘录数据。备忘录:负责存储发起人对象的内部状态,在需要的时候提供发起人需要的内部状态。管理角色:对备忘录进行管理,保存和提供备忘录。 阅读全文
posted @ 2013-03-01 17:45 lpfuture 阅读(137) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 17:40 lpfuture 阅读(148) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 17:37 lpfuture 阅读(160) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 16:16 lpfuture 阅读(136) 评论(0) 推荐(0) 编辑
摘要:优点: 1.模板方法模式通过把不变的行为搬移到超类,去除了子类中的重复代码。 2.子类实现算法的某些细节,有助于算法的扩展。 3.通过一个父类调用子类实现的操作,通过子类扩展增加新的行为,符合“开放-封闭原则”。缺点: 每个不同的实现都需要定义一个子类,这会导致类的个数的增加,设计更加抽象。适用场景: 1.在某些类的算法中,用了相同的方法,造成代码的重复。 2.控制子类扩展,子类必须遵守算法规则。 阅读全文
posted @ 2013-03-01 16:12 lpfuture 阅读(140) 评论(0) 推荐(0) 编辑
摘要:62-63=1 移动一位数,使等式成立! 阅读全文
posted @ 2013-03-01 15:49 lpfuture 阅读(438) 评论(5) 推荐(0) 编辑
摘要:1,2,3,4,5五个数组成一个两位数和一个三位数,要使乘积最大,应该是哪两个数,要使乘积最小呢? 1 <?php 2 $min=10000; 3 $max=0; 4 $max_a = 0; 5 $max_b = 0; 6 $min_a = 0; 7 $min_b = 0; 8 for($a=1;$a<6;$a++){ 9 for($b=1;$b<6;$b++){10 if($b!=$a){11 for($c=1;$c<6;$c++){12 if($c!=$b&&$c!=$a){13 ... 阅读全文
posted @ 2013-03-01 15:43 lpfuture 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:49 lpfuture 阅读(111) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:43 lpfuture 阅读(143) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:40 lpfuture 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 14:25 lpfuture 阅读(129) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:38 lpfuture 阅读(116) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:34 lpfuture 阅读(126) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:28 lpfuture 阅读(118) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:22 lpfuture 阅读(97) 评论(0) 推荐(0) 编辑
摘要: 阅读全文
posted @ 2013-03-01 09:18 lpfuture 阅读(118) 评论(0) 推荐(0) 编辑