基本递归

开始之前,首先来看一个通常我们不会以递归的形式思考的问题。假设我们想计算整数n的阶乘,n的阶乘可写作n!,其结果是1~n之间的各数之积。比如,4!=4*3*3*1。一种计算方法是循环遍历其中的每一个数,然后与它之前的数相乘作为结果再参与下一次计算。这种方法称为迭代法,可以正式定义为:

n! = (n)(n - 1)(n - 2)(n - 3) ··· (1)

看待这个问题的另一种方式是将n!定义为更小的阶乘形式。为了实现这一步,我们将n!定义为更小的阶乘形式。为了实现这一步,我们将n!定义为n-1阶乘的n倍。当然,求解(n-1)!的过程同n!一样,只是变小了一些。如果我们再把(n-1)!看做n-1倍的(n-2)!(n-2)!看做n-2倍的(n-3)!,一直到n=1时,我们就计算完了。这就是递归的方式,可以正式定义为:

Continue reading

一、什么是正则表达式

正则表达式是一种人们为了解决某类问题而发明的工具,通过简(fu)单(za)的语法拼接一个用来匹配的字符串,然后应用于各种程序语言,进行结果的搜索匹配。以下的应用场景你是否遇到 ?

  • 搜索某个目录下的某些文件名?
  • 写代码过程中寻找、修改一些文件、方法名?
  • 判断手机号、邮箱、身份证号是否合法?
  • 判断一个字符串中是否有数字?
  • 提取一个网页源文件中的手机号?

等等场景,这里就不一一赘述,如果没有一个正确、有效的方法进行处理,将会是一件非常痛苦的事,这时候,如果你会了正则表达式,那么这一切将会很轻松了。
其实,正则很简单,只要你跟着敲一遍测试一遍,多理解理解不多的几种语法,也就够日常开发使用了。

Continue reading

Mac OSX原生自带的Java JDK版本是1.6,而有的时候呢需要高一点的版本,这时候就需要升级JDK的版本。

首先看一下我这边的java版本:

java -version

我这边显示的版本是 :

ava version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-468-11M4833)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-468, mixed mode)

Continue reading