- 博客(16)
- 资源 (6)
- 收藏
- 关注
原创 [ACM]斐波那契数列对应的奇偶数列
原题目链接如下:1049 斐波那契数摘抄:Description斐波那契数列是如下的一个数列,0,1,1,2,3,5……,其通项公式为F(n)=F(n-1)+F(n-2),(n>=2) ,其中F(0)=0,F(1)=1,你的任务很简单,判定斐波契数列的第K项是否为偶数,如果是输出YES,否则输出NOInput第一行,T,表示有T个测试样例。接下来T行,每行一个数据K
2012-11-26 22:34:54
2997
原创 KMP算法和状态机的联系
应群里很多师弟的要求,现站出来解释解释大学时期学过的KMP算法本质是什么。以及如何理解、应用它。首先,KMP只是一个将字符串搜索变成状态机的状态命中检测应用。然后,我要解释什么是状态机了。用一个例子解释再好不过:假设有一台糖果自动贩卖机,拥有无限个糖果,可以进行的操作有:1.开机2.投币4.退币3.转动摇杆4.关机那么,看看下面的操作流程中,哪项是可以获
2012-10-31 03:53:32
2586
原创 《重构》C#版实现(四)switch的多态化处理
上一篇主要重构了Statement方法,在大刀阔斧的调整后,总算是得到了一个易于理解的方法体。当然,其中会带来潜在的效率问题,但记住一点,起码所有的事情都是经过权衡和决策的。可以“果断”来形容,而那种不明就里地乱来属于“武断”又或者说是“鲁莽”的行为当然不被推荐,它们的区别也就在于是否有全面的权衡与决策。首先,列出到现在为止,Movie类和Rental类的代码如下:public cla
2012-07-13 14:51:44
2948
原创 《重构》C#版实现(三)Statement的整体重构
上一篇使用了Extract Method技巧,从Statement方法中分离出了AmountFor方法,从而略微提高了Statement方法的可读性,下面我们继续跟着《重构》的脚步来进行剩余的重构。当然在继续之前,我还是会提醒你,每一步重构之后,记得运行单元测试,它是重构的基石。一、重命名AmountFor的局部变量首先看看我们先前抽取出来的AmountFor方法:public d
2012-07-12 19:26:12
1142
原创 《重构》C#版实现(二)抽取AmountFor方法
上一篇讲了如何使用原始(待重构的)代码构建自动单元测试,以保障后面重构的进行。如果你跟着一步一步地做,会发现,自动测试绝对是重构过程必不可少的工具。那么现在开始真刀真枪地进行重构。等等,在开始前的最后一刻,还需要提醒的是,也许你带着满腔热情,想把代码重构得优雅极致,但就像平时的工作一样,重构的过程更需要的是理性思考,而不是冲动。每一次重构实践,都应该包含了对设计、实现、可维护、可扩展性,以及成
2012-07-12 12:06:39
1075
原创 《重构》C#版实现(一)构建参考结果的测试用例
首先,列出的是第一个“电影租赁”案例的C#版初始代码:using System;using System.Collections.Generic;namespace CH01_MovieRentalHouse{ public class Movie { public const int CHILDRENS = 2; public co
2012-07-11 22:07:05
1076
原创 [数论][题目]高级机密
题目描述: 很多情况下,我们需要对信息进行加密。特别是随着Internet的飞速发展,加密技术就显得尤为重要。 很早以前,罗马人为了在战争中传递信息,频繁地使用替换法进行信息加密。然而在计算机奇数高速发展的今天,这种替换法显得不堪一击。因此密码研究人员正在试图寻找一样易于编码、但不易于解码的编码规则。 目前比较流行的编码规则称为RSA,是由美国麻省理
2008-05-17 18:03:00
1121
原创 [数论][题目]3n+1数链问题
题目描述: 在计算机科学上,有很多类问题是无法解决的,我们称之为不可解决问题。然而,在很多情况下我们并不知道哪一类问题可以解决,哪一类问题不可解决。现在我们就有这样一个问题,问题如下:(1) 输入一个正整数n;(2) 把n显示出来;(3) 如果n=1则结束;(4) 如果n是奇数则n变为3n+1,否则n变为n/2;
2008-05-10 09:15:00
2565
原创 [数论][题目]K尾相等数
题目描述:从键盘输入一个自然数K(K>1),若存在自然数M和N(M>N),使得K^M和K^N均大于或等于1000,且他们末尾三位数相等,则称M和N是一对“K尾相等数”。编写一程序,输出M+N值最小的K尾相等数。测试输入数据:2 测试输出数据:120 题目分析:解题:无论拿到什么样的题目,把题目读懂是第一件必须做到的事情。然后是分析题目中的关键词语以及重
2008-05-09 14:51:00
3848
2
原创 [数论]数论的基础知识——最大公约数、最小公倍数
一、整除一个整数a能被另一个整数d整除,记作d|a,意味着存在某个整数k,有 a=kd。整除的性质:(1) 如果 d|a, 则对于任意整数k有 d|ka(2) 如果 d|a 且 d|b,则d|(a±b)(3) 如果 b|a 且 a|b,则a=b整除的特殊例子:l 若2能整除a的最末位,则 2|a;若4能整除a的最末两位,则 4|a;若8
2008-05-07 22:00:00
2981
2
原创 [数论]基础类库、函数库
过硬的基础就好比在武侠小说中拥有非凡的内功一样,只有将内力提升了,才能在使出华丽的招式的同时带来巨大的杀伤力。这对于ACM来说也是一样的道理,平时做好了基础知识的积累,还有对一些常用的函数和算法进行建库,在后来的使用中就能如鱼得水,达到事半功倍的效果。所以我会为每部分相关内容建立一些基础类及函数,并且在不断的学习中逐渐完善这些内容。//┏━━━━━━━━━━━━━━━━━━━━━━━━
2008-05-07 16:52:00
731
原创 关于程序设计风格
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAA5V-InyKTY5eUzB6Np8mgrRSUlp8nB-VEdbraNR1unY1m8-19kxRFnyL6rY3f-xJJso8tOoRRS7zS-w" type="text/javascript"> 以后提到《国际大学生程序设计竞赛例题解
2008-05-07 11:13:00
754
4
原创 Fibonacci序列(雪球版)
Fibonacci序列(雪球版) (源代码在Algorithms解决方案中的Fibonacci_Snowball工程里) 大家好!又见面了~我比较乐意叫这个版本叫雪球版,因为它的计算过程就好象一个滚雪球的过程——越滚越大。 我就不再解释太多Fibonacci的知识了,递归的那个傻孩子版本里已经介绍够多了,估计它还在辛苦地算着1000阶的结果呢,哎呀,傻是没药治的呀,Oh,my god!
2007-07-12 00:31:00
989
原创 Fibonacci序列(递归-傻孩子版)
Fibonacci序列(递归-傻孩子版) ( 源程序包在QQ群中 号码7972471,开发环境是VC.net 2003,另外很抱歉,我实在不想把它翻译成中文,太别扭了,鸡肠子没学好的多包含呀 ) 所谓Fibonacci序列是指的下面这样一种序列 1,1,2,3,5,8,13,21,34....... 发现它们的规律了吗?呵呵,对,除了前两个数外,所有数都是前两个数字的和,这在很
2007-07-12 00:24:00
968
原创 关于线程的终止问题
在开发的时候,发现线程没有真正的终止,一直在吃CPU,仔细分析,做了个测试程序,发现问题如下1.从CWinThread派生了自己的CMyThread类,并且,这是一个UI线程(其实这个影响不大,在其他人的文章里也提过,任何线程都能处理消息,只是UI线程会有一个隐藏起来的窗口。)1.1重载InitInstance函数 BOOL CMyThread::InitInstance()
2007-02-25 11:39:00
2091
Visual Assist X 10.6.1856
2011-12-08
RichTextBox控件 支持插入自定义超链接
2011-12-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人