银河

SKYIV STUDIO

  博客园 :: 首页 ::  ::  :: 订阅 订阅 :: 管理 ::
  105 随笔 :: 2 文章 :: 751 评论 :: 22 Trackbacks

2005年9月17日 #

     摘要: Timus 1057. Amount of degrees 要求计算指定范围内能够由 K 个不同的 B 的幂次之和组成的整数的个数。这个程序的关键在于第 41 到 54 行的 GetNth 方法,该方法返回满足以下条件的第 N 个 B 进制整数:该整数中有 K 个 1,其余数字全部都是 0。  阅读全文
posted @ 2008-08-01 21:51 银河 阅读(720) | 评论 (2)编辑

     摘要: 前几天,我发表了一篇随笔:“BigArithmetic - 提供任意精度的算术运算的静态类”。现在,让我们使用 BigArithmetic 类来计算圆周率。我们需要一个计算 π 的分析算法。有用的算法是二次收敛的,即每一次迭代使有效位数增加一倍。计算 π 的二次收敛算法是基于 ACM 法(算术几何平均法)。  阅读全文
posted @ 2008-07-29 21:34 银河 阅读(982) | 评论 (6)编辑

     摘要: Timus 1005. Stone pile 要求将若干石头分为两堆使其重量差最小。这道题是说,给你一堆石头,总数在 1 到 20 之间,每个石头的重量在 1 到 100,000 之间。要求你将这堆石头分成两堆,使这两堆石头的重量差最小,并输出这个重量差。  阅读全文
posted @ 2008-07-26 10:04 银河 阅读(708) | 评论 (3)编辑

     摘要: 我在“浅谈 BigInteger”的随笔中实现了一个 Skyiv.Numeric.BigInteger 类,那时乘法是使用常规的 O(N2) 的算法,所以比 .NET Framework 3.5 Base Class Library 中的 System.Numeric.BigInteger 类稍慢,后者的乘法是使用 Karatsuba 算法,其时间复杂度约为 O(N1.585)。  阅读全文
posted @ 2008-07-25 22:07 银河 阅读(877) | 评论 (13)编辑

     摘要: 在上一篇随笔“使用快速傅里叶变换计算大整数乘法”中,已经讲述了使用快速傅里叶变换计算大整数乘法的原理。在这一篇随笔中,我们就使用快速傅里叶变换来实现一个提供任意精度的算术运算的静态类:BigArithmetic。  阅读全文
posted @ 2008-07-25 00:06 银河 阅读(1259) | 评论 (7)编辑

     摘要:

我们知道,两个 N 位数字的整数的乘法,如果使用常规的算法,时间复杂度是 O(N2)。然而,使用快速傅里叶变换,时间复杂度可以降低到 O(N logN loglogN)。

  阅读全文
posted @ 2008-07-23 22:10 银河 阅读(1457) | 评论 (30)编辑

     摘要: Timus 1603. Erudite 要求解一个字谜。这个题目首先给出一个 4x4 的字谜,然后给出许多单词,要求你判断这些单词是否能够由前面的字谜组成。规则是,你能够在字谜中上下左右行走,也能够拐弯,但是已经使用过的字母不允许再用。  阅读全文
posted @ 2008-07-16 20:47 银河 阅读(1024) | 评论 (0)编辑

     摘要: Timus 1318. Logarithm 要求将一些 128-bit 数进行 XOR 运算后,取对数(只计算到整数部分),然后求它们的和。  阅读全文
posted @ 2008-07-14 22:41 银河 阅读(140) | 评论 (0)编辑

     摘要: 本文介绍了四种可用于 C# 的 BigInteger 类:.NET Framework 3.5 Base Class Library 中的 System.Numeric.BigInteger、Skyiv.Numeric.BigInteger、ChewKeongTAN.BigInteger 和 java.math.BigInteger。并对她们进行比较。  阅读全文
posted @ 2008-07-13 21:25 银河 阅读(1828) | 评论 (15)编辑

     摘要: 偶然在 MSDN 上看到 Math.BigMul 方法。我就想,为什么 .NET Base Class Library 要提供这么一个方法?她的功能不就是等价于 (long)a * b 吗?   阅读全文
posted @ 2008-07-10 21:29 银河 阅读(1474) | 评论 (12)编辑

     摘要: Timus 1402. Cocktails 要求计算出鸡尾酒共有多少种调法。这道题目是说,给定 N (1 ≤ N ≤ 21) 种不同的原料,要求计算出总共能够调制出多少种不同的鸡尾酒。每种原料最多只能使用一次,但是投放原料的次序不同调制出来的鸡尾酒也不同。  阅读全文
posted @ 2008-07-10 09:36 银河 阅读(129) | 评论 (0)编辑

     摘要:

Timus 1531. Zones on a plane 要求计算满足给定条件的简单多边形的个数。这道题目是说,在平原上有若干三角形组成的区域 Zi。Z1 包含两个等腰直角三角形,组成一个正方形。Zn+1 由 Zn 按以下方法生成:以 Zn 中的三角形的直角边作为新的等腰直角三角形的斜边,然后再移去 Zn 中的三角形,剩下的三角形就组成了 Zn+1。现在要求计算 Zn 中包含多少个简单多边形。

  阅读全文
posted @ 2008-07-06 19:07 银河 阅读(1084) | 评论 (0)编辑

     摘要: Timus 1013. K-based numbers. Version 3 要求计算出不包括相邻的零的 N 位 K-进制数共有多少个。  阅读全文
posted @ 2008-07-04 19:22 银河 阅读(839) | 评论 (1)编辑

     摘要: 比较 C# 和 C/C++ 应用程序的性能  阅读全文
posted @ 2008-07-02 23:15 银河 阅读(2393) | 评论 (28)编辑

     摘要: Timus 1219. Symbolic Sequence 要求输出满足给定条件的一百万个小写拉丁字母。  阅读全文
posted @ 2008-07-01 23:41 银河 阅读(154) | 评论 (0)编辑

     摘要: Timus 1081. Binary Lexicographic Sequence 要求给出第 K 个 N 位二进制数,该二进制数不得有相邻的“1”。  阅读全文
posted @ 2008-06-30 21:09 银河 阅读(1341) | 评论 (5)编辑

     摘要: Timus 1152. The False Mirrors 说述消灭怪物的故事,故事中的主角周围环绕着一圈 N (3 ≤ N ≤ 20) 个阳台,每个阳台上有若干个怪物。主角每开一枪能够摧毁相邻的三个阳台,然后幸存的怪物还击,假设每个怪物每次攻击对主角的伤害都是一个单位。然后开始新一轮枪战,直到消灭所有的怪物。你的任务就是计算出主角受到的最小伤害。  阅读全文
posted @ 2008-06-28 14:00 银河 阅读(1065) | 评论 (3)编辑

     摘要: Timus 1010. Discrete Function 要求根据给定的离散函数在直角坐标系中的对应点的连线中找出倾角最大的。  阅读全文
posted @ 2008-06-26 22:35 银河 阅读(112) | 评论 (0)编辑

     摘要: Timus 1150. Digits 要求计算 1 到 N 的正整数中包含 0 .. 9 的数目。  阅读全文
posted @ 2008-06-25 23:35 银河 阅读(793) | 评论 (1)编辑

     摘要: Timus 1153. Supercomputer 要求根据自然数列的前 N 项和求 N 值。  阅读全文
posted @ 2008-06-24 23:29 银河 阅读(140) | 评论 (0)编辑

     摘要: Timus 1114. Boxes 要求计算出将两种颜色的球放到盒子中的各种组合的数目。  阅读全文
posted @ 2008-06-24 09:53 银河 阅读(164) | 评论 (0)编辑

     摘要: Timus 1108. Heritage 要求对给定的若干继承人作出一个遗产分配方案。  阅读全文
posted @ 2008-06-23 16:34 银河 阅读(138) | 评论 (0)编辑

     摘要: Timus 1028. Stars 要求计算直角坐标系中星星的等级。  阅读全文
posted @ 2008-06-22 10:08 银河 阅读(143) | 评论 (0)编辑

     摘要: Timus 1015. Test the Difference! 要求将赌场中的骰子分类。  阅读全文
posted @ 2008-06-21 15:57 银河 阅读(160) | 评论 (0)编辑

     摘要: Timus 1032. Find a multiple 要求在 N 个正整数中找出其中若干个使得它们的和是 N 的倍数。  阅读全文
posted @ 2008-06-21 10:13 银河 阅读(163) | 评论 (0)编辑

     摘要: Timus 1011. Conductors 要求根据售票员所占比例范围计算叶卡特琳堡的最小总人口数。  阅读全文
posted @ 2008-06-20 11:29 银河 阅读(178) | 评论 (0)编辑

     摘要: Timus 1079. Maximum 要求输出指定数列中的最大值。  阅读全文
posted @ 2008-06-19 11:53 银河 阅读(152) | 评论 (0)编辑

     摘要: Timus 1601. AntiCAPS 要求把一段大写英文字母的文本转换为适当的小写英文字母。  阅读全文
posted @ 2008-06-18 15:57 银河 阅读(151) | 评论 (0)编辑

     摘要: 俄罗斯乌拉尔大学在线题库Sphere Onlile Judge (SPOJ) 都是可以使用C#语言的在线ACM题库,有兴趣的朋友可以去试试。  阅读全文
posted @ 2008-06-07 20:43 银河 阅读(3769) | 评论 (32)编辑

posted @ 2008-04-04 20:51 银河 阅读(400) | 评论 (2)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第二十四篇。在这篇文章中,介绍 Window/MainForm.cs 源程序文件。这个源程序文件是 MainForm 类的主体部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体。  阅读全文
posted @ 2007-11-04 11:04 银河 阅读(1805) | 评论 (16)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第二十三篇。在这篇文章中,介绍 Window/MainForm.Common.cs 源程序文件。这个源程序文件是 MainForm 类的一部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体。而本篇文章讲述的是 MainForm 类的一些公用方法。  阅读全文
posted @ 2007-10-31 21:01 银河 阅读(1381) | 评论 (4)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第二十二篇。在这篇文章中,介绍 Window/MainForm.Replay.cs 源程序文件。这个源程序文件是 MainForm 类的一部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体。而本篇文章讲述的是推箱子“回放”过程。  阅读全文
posted @ 2007-10-29 19:50 银河 阅读(1364) | 评论 (2)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第二十一篇。在这篇文章中,介绍 Window/MainForm.Design.cs 源程序文件。这个源程序文件是 MainForm 类的一部分,该类继承自 System.Windows.Forms.Form 类,表示推箱子的主窗体。而本篇文章讲述的是推箱子“设计”的实际工作。  阅读全文
posted @ 2007-10-27 11:59 银河 阅读(1224) | 评论 (4)编辑

     摘要:   这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第二十篇。在这篇文章中,介绍 Window/DesignDlg.cs 源程序文件。这个源程序文件包含 DesignDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“设计”对话框。  阅读全文
posted @ 2007-10-24 19:55 银河 阅读(1359) | 评论 (7)编辑

     摘要: 应 Anytao 的邀请,“使用 C# 开发智能手机软件:推箱子”系列文章参与CLR团队精品系列推广活动。这篇文章是“使用 C# 开发智能手机软件:推箱子”的导航页面。  阅读全文
posted @ 2007-10-19 00:04 银河 阅读(3466) | 评论 (37)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第十九篇。在这篇文章中,介绍 Window/TranDlg.cs 源程序文件。这个源程序文件包含 TranDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“转换”对话框。  阅读全文
posted @ 2007-10-17 20:26 银河 阅读(1596) | 评论 (7)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第十八篇。在这篇文章中,介绍 Window/SelectLevelDlg.cs 源程序文件。这个源程序文件包含 SelectLevelDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“选关”对话框。  阅读全文
posted @ 2007-10-15 19:07 银河 阅读(1424) | 评论 (13)编辑

     摘要: 希望博客园程序在处理评论的“回复”和“引用”时能够加上是对第几楼的“回复”和“引用”。因为有时候评论很多,而且是隔了很多楼层进行“回复”或者“引用”,或者在“回复”同一个人的多个评论时,这项功能就很有用了。  阅读全文
posted @ 2007-10-15 14:12 银河 阅读(419) | 评论 (11)编辑

     摘要:   自2000年6月22日微软向全球宣布自己的.NET战略,到现在已经七年多了。作为.NET战略的基础,Microsoft .NET Framework 也已经发行了多个版本。下面,我们就来看看这些年来微软到底发布了哪些 .NET Framework 版本。(关于 Microsoft .NET Compact Framework 的版本请参阅“黎波”的文章:“如何判断 .NET Compact Framework 的版本”)
  阅读全文
posted @ 2007-10-13 18:49 银河 阅读(7117) | 评论 (44)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第十七篇。在这篇文章中,介绍 Window/SelectGroupDlg.cs 源程序文件。这个源程序文件包含 SelectGroupDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“选组”对话框。  阅读全文
posted @ 2007-10-11 19:11 银河 阅读(1707) | 评论 (8)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第十六篇。在这篇文章中,介绍 Window/ConfigDlg.cs 源程序文件。这个源程序文件包含 ConfigDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“配置”对话框。  阅读全文
posted @ 2007-10-07 11:25 银河 阅读(1904) | 评论 (15)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子” 系列文章的第十五篇。在这篇文章中,介绍 Window/OptionDlg.cs 源程序文件。这个源程序文件包含 OptionDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“选项”对话框。  阅读全文
posted @ 2007-10-02 09:39 银河 阅读(1503) | 评论 (7)编辑

     摘要:   在我最近开发的一个网页查询的项目中,客户提供的数据是多个 Excel 2007 文件,这些文件都很大,有的有十几万行(注意:Excel 2003 文件不能超过 65,536 行)。这些 Excel 2007 文件需要定期批量转换为网页程序可以读取的专用二进制格式文件。我们知道,Microsoft Office System 2007 引入了一个新的文件格式:Office Open XML 格式。她是基于 XML 和 ZIP 归档技术创建的,可以使用任何平台的能够处理 XML 或者 ZIP 文件的工具来访问并且修改文档内容。所以我们就可以使用 Microsoft .NET Framework 2.0 的强大 XML 类库来读取 Excel 2007 文件并转换为网页程序所需的专用二进制格式文件。当然,也可以使用 System.IO.Packaging 名称空间中的类库,但是她位于 .NET Framework 3.0 SDK (WinFX) 的 WindowsBase.dll 中。微软网站上有几篇很有用的文章:“Office (2007) Open XML 文件格式简介”和“如何操作  阅读全文
posted @ 2007-09-23 23:12 银河 阅读(3759) | 评论 (30)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十四篇。在这篇文章中,介绍 Window/ErrorMsgDlg.cs 源程序文件。这个源程序文件包含 ErrorMsgDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“错误信息”对话框。  阅读全文
posted @ 2007-09-18 19:50 银河 阅读(1896) | 评论 (4)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十三篇。在这篇文章中,介绍 Window/TopicDlg.cs 源程序文件。这个源程序文件包含 TopicDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“帮助”对话框。  阅读全文
posted @ 2007-09-16 07:17 银河 阅读(1909) | 评论 (3)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十二篇。在这篇文章中,介绍 Window/AboutDlg.cs 源程序文件。这个源程序文件包含 AboutDlg 类,该类继承自 System.Windows.Forms.Form 类,表示推箱子的“关于”对话框。  阅读全文
posted @ 2007-09-12 21:56 银河 阅读(1549) | 评论 (1)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十一篇。在这篇文章中,介绍 Common/Env.cs 源程序文件。这个源程序文件中包含表示“工作环境”的密封类 Env 。也就是说,主程序中重要的变量都封装在这个类中,作为整个程序的“工作环境”。  阅读全文
posted @ 2007-09-05 21:56 银河 阅读(2098) | 评论 (1)编辑

     摘要: 在我的上一篇随笔“对 File.Delete 方法的一点看法”中,在 Windows 操作系统上对 File.Delete 方法进行了测试。这次,在 Linux 操作系统上使用 mono 的最新版本 1.2.5 版对 File.Delete 方法进行测试。
  阅读全文
posted @ 2007-09-02 15:56 银河 阅读(1711) | 评论 (5)编辑

     摘要: FCL 中的 File.Delete 方法如果按以下原则进行设计则对开发人员更为友好:
1. File.Delete 方法在“指定的文件不存在”时引发 FileNotFoundException 异常。
2. File.Delete 方法在“指定的文件不存在”和“指定的路径无效”时不引发异常。
我更倾向于第二种方案。这样,在大多数情况下,就可以直接调用 File.Delete 方法,而不用先调用 File.Exists 方法。
  阅读全文
posted @ 2007-09-01 18:18 银河 阅读(3162) | 评论 (20)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第十篇。在这篇文章中,介绍 Common/DataFile.cs 源程序文件。这个源程序文件中包含密封类 DataFile,用来管理数据文件。
  阅读全文
posted @ 2007-08-29 22:08 银河 阅读(2025) | 评论 (8)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第九篇。在这篇文章中,介绍 Common/ConfigFile.cs 源程序文件。  阅读全文
posted @ 2007-08-26 11:29 银河 阅读(2645) | 评论 (1)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第八篇。在这篇文章中,介绍推箱子的 Smartphone 版本。  阅读全文
posted @ 2007-08-24 15:08 银河 阅读(2103) | 评论 (1)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第七篇。在这篇文章中,介绍 Common/Step.cs 源程序文件。  阅读全文
posted @ 2007-08-22 17:14 银河 阅读(1929) | 评论 (0)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第六篇。在这篇文章中,介绍 Common/Pub.cs 源程序文件。
  阅读全文
posted @ 2007-08-20 22:48 银河 阅读(2199) | 评论 (7)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第五篇。在这篇文章中,介绍经过改进后的 Common/FindPath.cs 源程序文件。也就是说,已经实现了“使用 C# 开发智能手机软件:推箱子(四)”的第二个评论中的想法,将地图 ushort[,] map 改为 byte[,] map 了。  阅读全文
posted @ 2007-08-19 21:16 银河 阅读(2350) | 评论 (14)编辑

posted @ 2007-08-19 13:18 银河 阅读(1711) | 评论 (21)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第四篇。在这篇文章中,介绍 Common/FindPath.cs 源程序文件。
  阅读全文
posted @ 2007-08-18 18:10 银河 阅读(2248) | 评论 (3)编辑

     摘要: 这是“使用 C# 开发智能手机软件:推箱子”系列文章的第三篇。在这篇文章中,介绍 Common/Block.cs 源程序文件。  阅读全文
posted @ 2007-08-18 17:16 银河 阅读(2363) | 评论 (5)编辑

     摘要: 在上篇文章“使用 C# 开发智能手机软件:推箱子(一)”中,我对推箱子程序作了总体介绍。这次,我先介绍 Common/Fcl.cs 源程序文件。  阅读全文
posted @ 2007-08-17 20:06 银河 阅读(3249) | 评论 (9)编辑

     摘要: 最近,使用 C# 开发了一款智能手机软件:推箱子。
先介绍一下这款软件的特点:
1. 可以在智能手机上运行,也可以在计算机上运行。
2. 退出程序时可保护现场,下次再运行自动恢复到原来的状态。
3. 玩家通关后可以使用“录像”功能保存通关步骤,以便将来“回放”。
4. 可以自由设计关卡,批量进行数据导出和导入。
该程序的源程序主要分布在“Window”和“Common”两个文件夹中。其中“Window”文件夹存放的是程序主窗体和各个对话框的源代码。而“Common”文件夹存放的是公用的源代码,包括各种数据结构,寻找最短路线的算法,读写配置文件和数据文件等。
我将在随后的文章中详细介绍各个源程序文件。
对了,推箱子程序的下载地址为:http://ben.skyiv.com/PushBox  阅读全文
posted @ 2007-08-17 19:18 银河 阅读(5480) | 评论 (43)编辑

     摘要: 数独游戏 在9x9的方格内进行, 分为3x3的小方格,被称为“区”。
数独游戏首先从已经填入数字的格子开始。
数独游戏的目的是根据下列规则,用1至9之间的数字填满空格:
每个数字在每一行、每一列和每一区只能出现一次。
我在 Linux 服务器上用 ASP.NET 2.0 实现了一个数独解算器。
  阅读全文
posted @ 2007-01-26 15:09 银河 阅读(6594) | 评论 (21)编辑

posted @ 2006-12-22 16:26 银河 阅读(6435) | 评论 (31)编辑

     摘要: 这是以下问题的答案:
这个程序会打印什么呢?
class Count
{
static void Main()
{
const int START = 2000000000;
int count = 0;
for (float f = START; f < START + 50; f++)
count++;
System.Console.WriteLine(count);
}
}
  阅读全文
posted @ 2006-09-03 19:18 银河 阅读(498) | 评论 (3)编辑

posted @ 2006-09-03 19:15 银河 阅读(179) | 评论 (0)编辑

     摘要: 这是以下问题的答案:
下面的程序将打印什么?
class Shifty
{
static void Main()
{
int i = 0;
while (-1 << i != 0)
i++;
System.Console.WriteLine(i);
}
}
  阅读全文
posted @ 2006-09-03 17:31 银河 阅读(421) | 评论 (0)编辑

posted @ 2006-09-03 17:28 银河 阅读(224) | 评论 (0)编辑

     摘要: 这是以下问题的答案:
下面的程序计算了一个循环的迭代次数,并且在循环终止时打印这个计数值。那么,它打印的是什么呢?
class InTheLoop
{
const int END = int.MaxValue;
const int START = END - 100;

static void Main()
{
int count = 0;
for (int i = START; i <= END; i++)
count++;
System.Console.WriteLine(count);
}
}
  阅读全文
posted @ 2006-09-03 16:42 银河 阅读(378) | 评论 (1)编辑

posted @ 2006-09-03 16:40 银河 阅读(234) | 评论 (0)编辑

     摘要: 这是以下问题的答案:
你能否举出这样一个合法的C#表达式,只要对它的某个子表达式加上括号就可以使其成为不合法的表达式,而添加的括号只是为了注解未加括号时赋值的顺序?
  阅读全文
posted @ 2006-09-03 15:53 银河 阅读(275) | 评论 (0)编辑

posted @ 2006-09-03 15:51 银河 阅读(249) | 评论 (1)编辑

     摘要: 这是以下问题的答案:
下面的程序只涉及加法,它又会打印什么呢?
class Elementary
{
static void Main()
{
System.Console.WriteLine(12345 + 5432l);
}
}
  阅读全文
posted @ 2006-09-03 11:05 银河 阅读(381) | 评论 (5)编辑

posted @ 2006-09-03 11:03 银河 阅读(303) | 评论 (2)编辑

     摘要: 这是以下问题的答案:
下面方法的目的是确定其唯一的参数是否为奇数。这个方法可行吗?
public static bool IsOdd(int i)
{
return i % 2 == 1;
}
  阅读全文
posted @ 2006-09-03 09:31 银河 阅读(691) | 评论 (1)编辑

posted @ 2006-09-03 09:29 银河 阅读(620) | 评论 (3)编辑

     摘要: 这是以下问题的答案:
本谜题呈现了两个容易令人混淆的构造器。Main方法调用了一个构造器,但是它调用的究竟是哪一个呢?该程序的输出取决于这个问题的答案。那么它会打印什么呢?甚至它是否合法?
class Confusing
{
Confusing(object o)
{
System.Console.WriteLine("object");
}

Confusing(double[] dArray)
{
System.Console.WriteLine("double array");
}

static void Main()
{
new Confusing(null);
}
}
  阅读全文
posted @ 2006-09-02 20:47 银河 阅读(370) | 评论 (0)编辑

posted @ 2006-09-02 20:46 银河 阅读(257) | 评论 (1)编辑

posted @ 2006-09-02 19:05 银河 阅读(1774) | 评论 (4)编辑

     摘要: 这是以下问题的答案:
请提供一个对i声明,将下面的循环转变为无限循环。
while (i != 0 && i == -i)
{
}
  阅读全文
posted @ 2006-09-02 18:53 银河 阅读(337) | 评论 (1)编辑

posted @ 2006-09-02 18:51 银河 阅读(206) | 评论 (0)编辑

     摘要: 这是以下问题的答案:
请提供一个对i的声明,将下面的循环转变为一个无限循环:
while (i != i + 0)
{
}

  阅读全文
posted @ 2006-09-02 17:15 银河 阅读(275) | 评论 (1)编辑

     摘要: 请提供一个对i的声明,将下面的循环转变为一个无限循环:
while (i != i + 0)
{
}
  阅读全文
posted @ 2006-09-02 17:12 银河 阅读(228) | 评论 (1)编辑

     摘要: 这是以下问题的答案:
请提供一个对i的声明,将下面的循环转变为无限循环:
while (i != i)
{
}
  阅读全文
posted @ 2006-09-02 16:32 银河 阅读(514) | 评论 (3)编辑

posted @ 2006-09-02 16:30 银河 阅读(323) | 评论 (3)编辑

     摘要: 这是以下问题的答案:
谜题28: 循环者
现在该轮到你了。什么样的声明能够让下面的循环变成一个无限循环?
while (i == i + 1)
{
}
  阅读全文
posted @ 2006-09-02 15:59 银河 阅读(562) | 评论 (5)编辑

     摘要: 什么样的声明能够让下面的循环变成一个无限循环?
while (i == i + 1)
{
}
  阅读全文
posted @ 2006-09-02 15:56 银河 阅读(447) | 评论 (0)编辑

     摘要: 我在10月份发表过一篇随笔“画函数图形的C#程序,兼论一个病态函数”,在那篇随笔中写道:

这个画函数图形的C#程序有一个严重的缺点,就是函数表达式是直接写的源程序中的,不能象SciLab和Matlab那样交互式地输入。
后来,根据“空间/IV”的评论,我写了个动态生成用户输入的函数表达式的类,用以改进这个画函数图形的C#程序。  阅读全文
posted @ 2005-11-01 20:48 银河 阅读(1399) | 评论 (2)编辑

     摘要: 我写了一个动态地生成用户输入的函数表达式的类(class Expression),表达式使用 C# 语法,可带一个的自变量(x),其自变量和值均为“double”类型。  阅读全文
posted @ 2005-10-31 22:42 银河 阅读(1996) | 评论 (11)编辑

     摘要: 使用ADO.NET(OleDb)读取Excel表格时,如果单元格的数据类型与该列的数据类型不相符,就会返回“DBNull”,造成应用程序错误。  阅读全文
posted @ 2005-10-28 19:41 银河 阅读(3989) | 评论 (21)编辑

posted @ 2005-10-26 17:39 银河 阅读(330) | 评论 (1)编辑

     摘要: 该程序在屏幕上画出指定的函数的图像,函数的自变量的取值范围由用户指定,程序自动计算该区间内函数的值的取值范围。同时还讨论一个病态函数:f(x) = 3 * x2 + π-4 * ln[(π-x)2] + 1 的特性。
  阅读全文
posted @ 2005-10-26 00:01 银河 阅读(2097) | 评论 (13)编辑

     摘要: 我写了一个打印文本文件的类库,功能包括:打印预览、打印。打印时可以选择打印机,可以指定页码范围。调用方法非常简单:
TextFilePrinter p = new TextFilePrinter(tbxFileName.Text);
p.View(); // 打印预览
p.Print(); // 打印文件
  阅读全文
posted @ 2005-10-24 15:01 银河 阅读(1980) | 评论 (5)编辑

     摘要: 这个图片是在网上找到的。由于图片太宽,请点击标题栏进入查看。  阅读全文
posted @ 2005-10-16 10:13 银河 阅读(8057) | 评论 (15)编辑

     摘要:   我女儿上小学五年级了,老师要求她制作一些英语卡片,以供上公开课使用。于是我就跟她一起制作了以下的卡片。  阅读全文
posted @ 2005-10-12 15:08 银河 阅读(1060) | 评论 (0)编辑

     摘要:   在编写有关数据库方面的C#程序时,经常需要知道数据库的表中各字段的以下信息:
1. 用于OracleParameter(或SqlParameter,...)中的字段和属性的数据库特定的数据类型。
2. 其对应的.NET数据类型。
  为此,我编写了一个小工具。
  阅读全文
posted @ 2005-10-09 22:56 银河 阅读(2622) | 评论 (25)编辑

posted @ 2005-10-08 23:04 银河 阅读(381) | 评论 (2)编辑

     摘要: 《敏捷软件开发——原则、模式与实践》,第13章COMMAND模式和ACTIVE OBJECT模式,13.4 ACTIVE OBJECT模式。原书中是java程序,现翻译为C#程序,需要C#2.0编译器。  阅读全文
posted @ 2005-10-07 22:36 银河 阅读(2397) | 评论 (9)编辑

     摘要:  关于圆周率,可参阅“维基百科-圆周率”。我前天在博客园也发表了一篇随笔:“计算圆周率的C程序” 。这个C#版的计算圆周率程序就是在C程序的基础上改写的。C#版的程序必须使用C#2.0编译,算法和C程序是一样的,都是利用圆周率的反正切展式的泰勒级数来计算,但C#程序充分使用面象对象的编程方法,并且程序中有适当的注释,比C程序容易理解多了。C#程序从配置文件中读取计算所用的公式,允许自己增加计算公式。  阅读全文
posted @ 2005-09-30 11:22 银河 阅读(2773) | 评论 (15)编辑

     摘要: 本文讨论在System.IComparable接口的CompareTo方法中,是否可以不使用复合的if-else语句的问题。  阅读全文
posted @ 2005-09-29 11:34 银河 阅读(1175) | 评论 (3)编辑

     摘要: 这是很早以前用C语言写的一个计算圆周率的程序, 算法是用泰勒公式计算反正切值。在命令行不跟参数执行该程序则使用Gauss公式计算前1000位圆周率的值,如果带一个命令行参数,则该值为要计算的位数。如果还有第二个命令行参数,则使用Stomer公式计算,可作为验算。因为该程序只涉及到纯数学计算,可以在Linux、Unix、Windows等操作系统下编译并运行。当时写这个程序时,int是2个字节的,现在大多数的C编译器int都是4个字节,不过这不影响程序的正确性。
  阅读全文
posted @ 2005-09-28 15:30 银河 阅读(1438) | 评论 (4)编辑

     摘要: 在C#中,你给属性赋一个值,然后再读该属性的值,取到的值就有可能不是你刚刚赋给它的值了。  阅读全文
posted @ 2005-09-22 20:59 银河 阅读(2261) | 评论 (18)编辑

     摘要: 首先,用 FtpClient.GetDownloadStream() 方法得到一个对应于FTP服务器上文件的Stream,然后把这个Stream传给Zip.GetZipInputStream()方法,得到一个ZipInputStream,然后使用Zip.ReadStream()方法一行一行读取储蓄流水账文件到byte[]中去,这样就取得了我们所需的数据,就象储蓄流水账文件就存放在本地硬盘上一样,避免了下载文件和解压文件。
  阅读全文
posted @ 2005-09-17 15:47 银河 阅读(2271) | 评论 (7)编辑

     摘要: 在FCL2.0中增加了System.IO.Compression命名空间, 用以进行文件压缩和解压操作。
本文实现一个Zip类封装了该命名空间的相关方法。
但是,如果有使用Zip.DecompressFile()方法去解压标准的ZIP文件,就会出现以下错误:
GZip 头中的幻数不正确。请确保正在传入 GZip 流。
此外,使用Zip.CompressFile()方法也不能将多个文件放入一个ZIP包。
看来,FCL2.0还是不能处理标准的ZIP文件,我目前是使用第三方的ICSharpZipLib来处理ZIP文件。  阅读全文
posted @ 2005-09-17 10:55 银河 阅读(4743) | 评论 (9)编辑