VB 请问:以下循环还有没有其它更快的写法?

来源:百度知道 编辑:UC知道 时间:2024/05/26 06:13:35
请问:以下循环还有没有其它更快的写法?
i=1
for a =1 to 28
for s=a+1 to 29
for d=s+1 to 30
for f=d+1 to 31
for g=f+1 to 32
for h=g+1 to 33
m(i)=str(a)+str(s)+str(d) +str(f)+str(g)+str(h)
i=i+1
next h,g,f,d,s,a

递归函数会使速度稍慢些,因为调用过程会占用很多CPU

m(i)=str(a)+str(s)+str(d) +str(f)+str(g)+str(h)

这句中的加号全部改成 &
VisualBasic在编译时会将一行中用&连接的字符串当作常量处理,就是在编译时就连接好了,运行时当作一个字符串处理,不会占用CPU
而且加号涉及运算符重载问题也会降低执行效率
这是微软官方VisualBasic帮助文档中说的

另外要显式声明变量类型,不同的变量类型(比如Integer和Long)在不同的CPU上运行速度不同(根据我个人的测试,VB6中在32位CPU上Long型整数要比Integer类型快2-3倍,比Double快10倍,比Variant快20倍左右)

你的代码有6重循环,可以写个递归函数,在循环重数更多的时候会更简洁.
但对于代码执行效率没有帮助.
速度应该不能再快了,期待高手

没有了
不过也不知道你要干什么
要循环上亿次