获取 "斐波那契数列" 的函数
摘要:{ 斐波那契数列: 1、2、3、5、8、13、21、34、55、89、144 ... 等于前两数之和 }{ 昂纳多·斐波那契(Leonardo Fibonacci, 1170-1240, 意大利数学家) }uses Types;{参数 2 是要获取的总数}procedure fbnc(var A: TInt64DynArray; Count: Integer);var i: Integer;be...
阅读全文
posted @
2010-05-10 11:08
万一
阅读(5234)
推荐(0) 编辑
"岛主" 同学给我出的算法题
摘要:问题来源: http://www.cnblogs.com/del/archive/2010/04/09/1708619.html#1798022问题描述 - 给出几组数值范围, 如:组一: 2..5组二: 3..6组三: 1..8组四: 2..10...然后从每组中选一个数字, 依次排列成一个新的数字, 需要列出所有排列方式.实现代码:本例测试结果:
阅读全文
posted @
2010-04-11 12:10
万一
阅读(3250)
推荐(0) 编辑
极快的正整数排序函数
摘要:实现原理: 对比二进制位. unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; M...
阅读全文
posted @
2009-05-01 01:22
万一
阅读(4743)
推荐(0) 编辑
用一个 Byte 数表示 8 个复选框的选择状态
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CheckLst; type TForm1 = class(TForm) CheckListBox1...
阅读全文
posted @
2009-04-16 17:38
万一
阅读(4802)
推荐(1) 编辑
最大公约数与最小公倍数
摘要:本例效果图: 代码文件: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; E...
阅读全文
posted @
2009-03-10 10:26
万一
阅读(3276)
推荐(0) 编辑
关于十六进制转十进制 - 回复 MaxCool 的问题
摘要:这不需要写函数. //如果十六进制非字符串, 无须转换, 直接赋值即可 var i: Integer; begin i := $FF; ShowMessage(IntToStr(i)); {255} end; //如果十六进制是字符串, 用 StrToInt 即可 var s: string; i: Integer; begin s := '$FF'; i :=...
阅读全文
posted @
2008-03-19 15:20
万一
阅读(6032)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[10]: 双向链表
摘要:如果在结构中再拿出 4 个字节的地址空间指向上一个节点, 就成了双向链表了. 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(...
阅读全文
posted @
2008-03-19 13:32
万一
阅读(4847)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[9]: 循环链表
摘要:前面例子中, 链表的尾节点都再没有链接其他节点; 如果让尾节点再链接首节点, 不就是循环链表了吗? 本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TFor...
阅读全文
posted @
2008-03-19 13:30
万一
阅读(3243)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[8]: 单向链表的添加、删除与遍历
摘要:本例效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Memo1: TMemo; Button1: TBu...
阅读全文
posted @
2008-03-18 23:58
万一
阅读(4040)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[7]: 链表与数组的异同
摘要:首先, 上一个例子, 用数组也可以实现, 并且更简单: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: ...
阅读全文
posted @
2008-03-18 23:24
万一
阅读(3723)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[6]: 一个简单的"单向链表"
摘要:unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Button2: TButton...
阅读全文
posted @
2008-03-18 14:23
万一
阅读(3701)
推荐(2) 编辑
《Delphi 算法与数据结构》学习与感悟[5]: 定位一个字符位置时, Pos 函数为什么不是最快的?
摘要:如果 Pos 函数的第一个参数是 Char 而非 String, 那么编译器也会先把 Char 转换为 String; 从内存结构到管理机制, String 远比 Char 要复杂. 因此, 面对这种情况(要定位的是 Char) Pos 还有优化的余地; 优化后速度会提升 5 倍左右. 测试效果图: unit Unit1; interface uses Windows, Mess...
阅读全文
posted @
2008-03-18 12:53
万一
阅读(3735)
推荐(2) 编辑
《Delphi 算法与数据结构》学习与感悟[4]: 关于 const
摘要:如果参数在函数中不可能修改, 一定要使用 const; 不然, 编译器就会: 假定先修改, 先要备份; 使用前后要增减引用计数; 还要套上 try finally. 指定了 const 就可以避免以上过程从而提高效率. 测试效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes...
阅读全文
posted @
2008-03-18 10:55
万一
阅读(3230)
推荐(2) 编辑
《Delphi 算法与数据结构》学习与感悟[3]: 获取一个字节中非空位的个数
摘要:一个字节有 8 个位, 这些位可能是 0 也可能是 1; 现在要算出一个字节中是 1 的位共有多少个. 第一种方法是一个函数; 第二种方法笨了点, 是先把 256 种可能值给一个数组, 随时调取. 第一种方法虽然灵巧, 但不如第二种方法快(作者书中说: 在非特殊情况下, 一般要快到 10 倍左右); 第二种方法虽然快捷, 并且使用方便, 但要以 256 个字节的数组空间为代价. uni...
阅读全文
posted @
2008-03-17 23:27
万一
阅读(3200)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[2]: 数据对齐
摘要:为了加快硬件的访问速度, 编译器通常要使用"数据对齐", 譬如: //下面结构中: SizeOf(TRec) = 6; 因为 b 在这里也要占 2 字节. TRec = record a: Word; b: Byte; c: Word; end; //下面结构中: SizeOf(TRec) = 16; 这里的 a 和 b 共占了 8 个字节. TRec = record a:...
阅读全文
posted @
2008-03-17 18:28
万一
阅读(3959)
推荐(1) 编辑
《Delphi 算法与数据结构》学习与感悟[1]: 通过 "顺序查找" 与 "二分查找" 说明算法的重要性
摘要:测试效果图: unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; Memo1: T...
阅读全文
posted @
2008-03-17 10:41
万一
阅读(8251)
推荐(1) 编辑
为钩子的下一步学习补课: 如何提取 32 位中的某一位
摘要:Integer 类型是 32 位的, 有 4 个字节, 现在我们需要能够提取出其 32 位中的某一位. 但 Delphi 最小的整数类型也是一个字节(8位)的: Byte(无符号)、Shortint(有符号). 要不先从提取一个字节开始: var i: Integer; b: Byte; begin i := MaxInt; {Integer 的最大值} ShowMessage(...
阅读全文
posted @
2008-02-27 22:28
万一
阅读(5811)
推荐(1) 编辑