用VBS精确计算2的100次方的代码
导读:收集整理的这篇文章主要介绍了用VBS精确计算2的100次方的代码,觉得挺不错的,现在分享给大家,也给大家做个参考。 既然Python可以计算2的100次方,那么我就要用vbS实现。不过这...
收集整理的这篇文章主要介绍了用VBS精确计算2的100次方的代码,觉得挺不错的,现在分享给大家,也给大家做个参考。 既然Python可以计算2的100次方,那么我就要用vbS实现。不过这个效率嘛,计算2的10000次方Python用了0.009013秒,VBS用了120.9805秒,不是一个等级的,我就不多说什么了。 直接上代码:
复制代码 代码如下:
'Date: 2010/10/27
'Author: Demon
'QQ: 380401911
'E-mail: still.demon@gmail.COM
begin = Timer
n = 1
For i = 1 To 100
n = multiple(n, 2)
Next
finish = Timer
WScript.Echo n
WScript.Echo finish - begin
'Grade school multiplication, AlgorIThm 14.12
'http://www.cacr.math.uwaterloo.ca/hac/about/chap14.pDF
Function multiple(byVal x, byVal y)
Dim n, t, i, j, z, w()
n = Len(x) - 1
t = Len(y) - 1
redim w(n + t + 1)
x = CStr(x) : y = CStr(y)
For i = 0 To ubound(w)
w(i) = "0"
Next
For i = 0 To t
Dim c : c = 0
Dim uv : uv = 0
For j = 0 To n
uv = (w(i+j)-"0") + c + _
(Mid(x,n-j+1,1)-"0") * (Mid(y,t-i+1,1)-"0")
w(i+j) = CStr(uv Mod 10 + "0")
c = uv \ 10
Next
w(i+n+1) = CStr(uv \ 10 + "0")
Next
z = Join(w,"")
z = Strreverse(z)
do while Left(z,1) = "0"
z = Mid(z,2)
Loop
multiple = z
End Function
原文:http://demon.tw/PRogramming/vbs-long-multiplication.htML 您可能感兴趣的文章:
- 用VBS精确计算100的阶乘的实现代码
声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!
若转载请注明出处: 用VBS精确计算2的100次方的代码
本文地址: https://pptw.com/jishu/609887.html
