在前面一篇中, 已经看过许多直观的递归的例子, 在这篇里, 将分析两个经典的递归问题, 阶乘与菲波那契数列数列, 在此过程中, 还将对比递归与循环(迭代)间的异同, 探讨递归与内存中的栈的关系, 以及递归的效率等问题.
如无特别说明, 示例使用的是 Java, IDE 则为 Eclipse.
阶乘(factorial)
阶乘大家应该都很熟悉了. 下面是一些简单例子:
2!= 2×1=2
3!= 3×2×1=6
用一个简单的循环就可以把它写出来. 不过我们现在打算用递归来写.
摘要: 简要介绍了阶乘与菲波那契数列两个经典的递归例子, 并重点分析了递归与迭代的异同, 以及递归调用与栈之间的关系.
在前面一篇中, 已经看过许多直观的递归的例子, 在这篇里, 将分析两个经典的递归问题, 阶乘与菲波那契数列数列, 在此过程中, 还将对比递归与循环(迭代)间的异同, 探讨递归与内存中的栈的关系, 以及递归的效率等问题.
如无特别说明, 示例使用的是 Java, IDE 则为 Eclipse.
阶乘大家应该都很熟悉了. 下面是一些简单例子:
2!= 2×1=2
3!= 3×2×1=6
用一个简单的循环就可以把它写出来. 不过我们现在打算用递归来写.
百度又叫度娘,那么问题来了,搜狗叫什么?
摘要: 递归的一些有趣例子.
从前有座山, 山上有座庙, 庙里有个老和尚在给小和尚讲故事: "从前有座山, 山上有座庙, 庙里有个老和尚在给小和尚讲故事: ..."
看完这个故事, 对递归你已经有了印象, 很好, 这样已足够. 如果你不幸是个喜欢精确定义的人, 那么答案可能无法让你满意:
你想知道递归是什么, 你得先知道什么是递归.
To understand recursion, you must understand recursion.
把你绕晕了没有? 你可能想这叫啥子定义哟. 如果你去谷歌英文页搜索"recursion", 谷歌就会给你来这么一下:

谷歌说: "你是说递归吗? (Did you mean: recursion)".
拼写绝对是正确的, 这不过是谷歌给你开的"递归式"的玩笑.
说完了谷歌, 再说说必应(Bing), Bing 是什么意思呢:
Bing = Bing is not google(Bing 不是谷歌)
你还是不满意, 那再看看 GNU, GNU 又是啥呢:
GNU = GNU’s Not Unix(GNU 不是 Unix)
摘要: 关于 GB2312, GBK, GB18030 编码的一些介绍, 还有区位码, 国标码, 机内码间的转换关系.
前面的一些篇章更多谈论了 Unicode 的相关话题, 虽然也有提到 GBK 等编码, 但都没细说, 这里打算系统说一下. GB 系列包括 GB2312, GBK, GB18030.
前面已经提过, GB=Guo Biao=国标=国家标准, 至于所谓的 2312 就是一编号了, 没有其它特别的意义, 18030 类似.
GBK 没有编号, 所以它实际上并不是国家标准, 只是一个事实标准, GBK 中 K 指 扩展 的意思.
最早的是 GB2312, 我们从它开始说起.
摘要: 简单介绍了 ASCII 和 ISO-8859-1 两个常见的字符集(编码).
在前面其实也谈到了 ASCII 了, 但并没有很具体, 作为一个完整系列的一部分, 还是有必要谈一下, 也作为后面讨论的一些基础.
它的全称是 American Standard Code for Information Interchange(美国信息交换标准代码), 是一个 7 位字符编码方案. 下面是它的一张简图(来自http://www.asciitable.com/index/asciifull.gif):

ASCII 定义了 128 个字符, 包括 33 个不可打印的 控制字符(non-printing control characters) 和 95 个可打印的字符.