`
cjc
  • 浏览: 660518 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论
文章列表
GetTempPath取得的是一个DOS名称,当文件名长度大于8时,长文件名格式“C:\Documents and Settings\Administrator\Local Settings\Temp”会显示成“C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp”的短文件名格式,如何根据自己需要取得系统临时目录的途径,下面是一个新写的函数,调用两个API 实现,相信许多朋友可能用得到。 Option ExplicitPrivate Declare Function GetLongPathName Lib "kernel32" Alias "GetL ...
  为了使每一个汉字有一个全国统一的代码,1980年,我国颁布了第一个汉字编码的国家标准: GB2312-80《信息交换用汉字编码字符集》基本集,这个字符集是我国中文信息处理技术的发展基础,也是目前国内所有汉字系统的统一标准。由于国标码是四位十六进制,为了便于交流,大家常用的是四位十进制的区位码。所有的国标汉字与符号组成一个94×94的矩阵。在此方阵中,每一行称为一个"区",每一列称为一个"位",因此,这个方阵实际上组成了一个有94个区(区号分别为0 1到94)、每个区内有94个位(位号分别为01到94)的汉字字符集。一个汉字所在的区号和位号简单地组合在一 ...
本文演示了如何利用API进行窗体标题栏的裁剪和恢复,一并演示了控件的动态添加方法:   'This sample show you how to cut the caption title exactly and create controls with code.'add a new form ,do nothing but copy this codes for it.Option Explicit    Private Declare Function CreateRectRgn Lib "gdi32" (ByVal x1 As Long, ByVal y1 As Lo ...
从m 个互不相同元素中取 n 个元素,一般选用递归或回溯算法解决,本文旨在利用进制转换的方法达到这一目的。代码如下     Sub GETALL(ByVal num As Integer, ByRef x As Variant, ByRef RESULT() As String, Optional ByRef all As Long) Dim A() As String, b() As Integer '临时数组Dim n As Integer ' 数组元素个数Dim i As Long '循环变量Dim TEMP As Long '二进制转换中间变量Dim num2 As Integer '中 ...
题目: 将+,-,*,/ 添加到 1,2,3,4,5,6,7,8,9 之间,使其构成的算式四则运算结果等于100,如: 1*2*3*4+5+6+7*8+9=100 分析: 以上算式相当于把1~9  9 个数字和 8个(+,-,*,/ )作一个特殊顺序的排列,共有4^8=65536 种可能,再从中进行取舍。 代码: Option ExplicitPrivate Declare Function EbExecuteLine Lib "vba6.dll" (ByVal pStringToExec As Long, ByVal Unknownn1 As Long, ByVal Unk ...
我们都知道,一个含n个元素的集合拥有2^n个子集合,并且不难发现,其中每个子集合都是从0到2^n-1 每个数的二进制格式中0 放弃,1选择的结果,如下所示: {}           000 {1}         100 {2}         010 {1,2}      110 {3}         001 {1,3}      101 {2,3}      011 {1,2,3}   111 所以根据数字的二进制转换,可以轻松获得一个集合的所有子集合,代码如下: Sub GETALL(ByVal mycollection As String, ByRef RESULT() As Str ...
题目: 十九世纪著名的数学家高斯提出:在8×8格的国际象棋棋盘上摆放八个皇后,使其不能互相攻击,即任意两个皇后都不能处于同一行、同一列或同一斜线上,问有多少种摆法。 分析: 其实问题可以转化为12345678的满足某种条件(行已不等,列亦不等,只需设定其不在同一斜线上,即斜率不为 1 或-1 )的排列. 通过前两天用非递归方式解决序列的全排列问题(.http://blog.csdn.net/northwolves/archive/2004/07/21/47601.aspx),在较短的时间内写出如下代码,经测试速度还可以: 代码: 'add a textbox (with multiline=tr ...
题目: 一个共有20个台阶的楼梯,从下面走到上面。一次只能迈一个台阶或两个台阶,并且不能后退,走完这个楼梯共有多少种方法。 分析: 1 步台阶只有1种走法(1) 2步台阶2种(11、2) 3步台阶有3种(111、12、21) 4 步台阶有5种(1111、112、121、211、22) 5 步台阶有8种(11111、1112、1121、1211、122、2111、212、221) 6步台阶有13种(111111、11112、11121、11211、1122、12111,1212、1221、2111、2112、2121、2211、222) 可以发现每一个台阶数的走法对应为比它少一步各种走法前加一个1 ...
?笔者曾利用进制转换实现不重复序列全排列(http://blog.csdn.net/northwolves/archive/2004/07/21/47400.aspx),但从0 循环到n^(n-1)-1,效率实在不高,经过仔细分析,发现一个另人激动的规律,详情见下表: ? A<o:p></o:p> <o:p>?</o:p> BA<o:p></o:p> CBA<o:p></o:p>
下面给出一个回溯算法的代码,在VertyNew(华) 网友提供代码(http://community.csdn.net/Expert/topic/2909/2909080.xml?temp=.9990503)基础上稍作修改: Sub pailie2(ParamArray x())Dim starttime As Single, endtime As SingleDim i As Integer, j As Integer, Num As Long, n As IntegerDim a() As Integer '记载数组下标Dim b() As Integer '记载使用标识n = UBound ...
笔者曾写过利用递归实现不重复序列全排列的例子http://blog.csdn.net/northwolves/archive/2004/04/07/19590.aspx 现在给出另一个利用进制实现的代码: Sub pailie1(ParamArray x())Dim starttime As Single, endtime As SingleDim n As Integer, i As Long, Num As Integer, j As IntegerDim temp1() As String, temp2 As Long, all As New Collectionn = UBound(x) ...
下面的代码可以将任意日期(1000-01-01 0:0:0------>9999-12-31 23:59:59)转换为汉字显示 Function datename(ByVal mydate As String) As String Dim i As Long, mystr(6) As String, temp As StringConst all As String = "○一二三四五六七八九十" If Not IsDate(mydate) Then '错误处理MsgBox "非正确日期格式!", vbInformation, "警告&qu ...
前些时间写的关于大整数的阶乘计算,效率总是再难以提高:(http://dev.csdn.net/develop/article/28/28306.shtm,http://dev.csdn.net/develop/article/28/28308.shtm,http://dev.csdn.net/develop/article/28/28432.shtm,http://dev.csdn.net/develop/article/28/28641.shtm) 今日突然想到 n!=1*2*3*....*n     →    lg(n!)=lg(1*2*3*....*n)=lg(1)+lg(2)+ lg( ...
很难想象只要改动几句代码就可以大幅提高执行的效率,在前几篇文章中我写了几种大数阶乘的算法(http://www.csdn.net/Develop/read_article.asp?id=28306,http://www.csdn.net/Develop/read_article.asp?id=28308,http://www.csdn.net/Develop/read_article.asp?id=28432),效率都比较低。今日看了homezj(http://www.csdn.net/Develop/article/28/28584.shtm )的代码,很受启发,优化如下:   <一&g ...
求整数的幂:   Private Sub Command1_Click()power 64, 10000' 64^10000End SubSub power(ByVal x As Long, ByVal n As Integer, Optional ByRef result As String)Dim a() As Long, s() As String, i As Long, temp As LongReDim a(1 To 1)a(1) = 1k = 0stimer = TimerDo While k &lt; nk = k + 1temp = UBound(a)For i = 1 ...
Global site tag (gtag.js) - Google Analytics